C#调用sql Server数据库存储过程时,需要提供的参数类型是数据库自定义的类型怎么调用?
SqlParameterparam1=newSqlParameter("@username",/*SqlDbType.Int*/);上面的类型里是数据库自定义的类型,怎么...
SqlParameter param1 = new SqlParameter(
"@username", /*SqlDbType.Int*/);
上面的类型里是数据库自定义的类型,怎么添加呢? 展开
"@username", /*SqlDbType.Int*/);
上面的类型里是数据库自定义的类型,怎么添加呢? 展开
4个回答
2013-07-05
展开全部
闲话不说。把我以前写的给你参照下:
#region 通过手机号查出该手机号是哪个省的
/// <summary>
/// 通过手机号查出该手机号是哪个省的
/// </summary>
/// <param name="quhao"></param>
/// <returns></returns>
public string GetProvinceBySJH(string SJH)
{
//通过手机号段得到该号段是属于哪个省
try
{
string province;
cmd=new SqlCommand("GetProvinceBySJH",Conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@sjh",SJH);
cmd.Parameters.Add("@province",SqlDbType.VarChar,20).Direction = ParameterDirection.Output;
openconn();
cmd.ExecuteNonQuery();
province=cmd.Parameters["@province"].Value.ToString().Trim();
closeconn();
return province;
}
catch
{
return "";
}
}
#endregion
SQL 2000中存储过程:
CREATE PROCEDURE dbo.GetProvinceBySJH
(
@sjh varchar(7),
@province varchar(20) OUTPUT
)
AS
select top 1 @province=province from ChinaSJHD where mobile=@sjh
GO
需要的注意的是:SqlDbType.VarChar,20要跟数据库对应大小要写成一样。否则报错。我试过的。
#region 通过手机号查出该手机号是哪个省的
/// <summary>
/// 通过手机号查出该手机号是哪个省的
/// </summary>
/// <param name="quhao"></param>
/// <returns></returns>
public string GetProvinceBySJH(string SJH)
{
//通过手机号段得到该号段是属于哪个省
try
{
string province;
cmd=new SqlCommand("GetProvinceBySJH",Conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@sjh",SJH);
cmd.Parameters.Add("@province",SqlDbType.VarChar,20).Direction = ParameterDirection.Output;
openconn();
cmd.ExecuteNonQuery();
province=cmd.Parameters["@province"].Value.ToString().Trim();
closeconn();
return province;
}
catch
{
return "";
}
}
#endregion
SQL 2000中存储过程:
CREATE PROCEDURE dbo.GetProvinceBySJH
(
@sjh varchar(7),
@province varchar(20) OUTPUT
)
AS
select top 1 @province=province from ChinaSJHD where mobile=@sjh
GO
需要的注意的是:SqlDbType.VarChar,20要跟数据库对应大小要写成一样。否则报错。我试过的。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
2013-07-05
展开全部
不太懂你说的意思,不过下面是我调用存储过程的方法
string conns = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
SqlConnection conn = new SqlConnection(conns);
SqlCommand cmd = new SqlCommand("lianjie",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@u", SqlDbType.NChar, 20);
cmd.Parameters["@u"].Value = T_user.Text;
cmd.Parameters.Add("@p", SqlDbType.NChar, 20);
cmd.Parameters["@p"].Value = T_pwd.Text;
string conns = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
SqlConnection conn = new SqlConnection(conns);
SqlCommand cmd = new SqlCommand("lianjie",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@u", SqlDbType.NChar, 20);
cmd.Parameters["@u"].Value = T_user.Text;
cmd.Parameters.Add("@p", SqlDbType.NChar, 20);
cmd.Parameters["@p"].Value = T_pwd.Text;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-05
展开全部
你在资料库建表的时候..比如说某个字段是Int类型的!!然後你在程序裏面写SqlDbType.Int的时候..必须要和资料库一样!!
username int primary key ,
SqlParameter param1 = new SqlParameter("@username", SqlDbType.Int);
两个类型要一样!!
username int primary key ,
SqlParameter param1 = new SqlParameter("@username", SqlDbType.Int);
两个类型要一样!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-05
展开全部
SqlParameter param1 = new SqlParameter(
"@username", SqlDbType.VarChar,8);
"@username", SqlDbType.VarChar,8);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询