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要跟数据库对应大小要写成一样。否则报错。我试过的。
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询