社区
C#
帖子详情
C#中怎么样用sql server的储存过程?
formatkm
2003-09-06 10:07:33
在用sqlDataAdapter自动生产储存过程后,怎么样可以随意的操作数据库?有没有简便直观的方法?请举例。
...全文
56
11
打赏
收藏
C#中怎么样用sql server的储存过程?
在用sqlDataAdapter自动生产储存过程后,怎么样可以随意的操作数据库?有没有简便直观的方法?请举例。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lmdhit
2003-09-07
打赏
举报
回复
建立Command对象,但是对象的CommandType属性必须设置为 Procedure
spiketang
2003-09-07
打赏
举报
回复
把string 的选择或插入语句改存储过程的名就行了,得用参数年来获得!
dyesucker
2003-09-07
打赏
举报
回复
也可以直接用sql语句execute
91bct
2003-09-07
打赏
举报
回复
下面是我写的调用存储过程的方法,存储过程有返回值,参数名为v_out_serialno,代码如下:【其他两个参数为输入参数,在过程中的参数名是:v_prefix,v_length】
private string returnSerialNo(string sPrefix,int iLength)
{
string sproc="get_serialno_pro";
OleDbCommand cmd=new OleDbCommand(sproc);
cmd.CommandType=CommandType.StoredProcedure;
//cmd.Connection=Conn
OleDbParameter para_prefix=new OleDbParameter("v_prefix",OleDbType.Char,1);
para_prefix.Value=sPrefix;
cmd.Parameters.Add(para_prefix);
OleDbParameter para_length=new OleDbParameter("v_length",OleDbType.Integer);
para_length.Value=iLength;
cmd.Parameters.Add(para_length);
OleDbParameter para_out_serialno=new OleDbParameter("v_out_serialno",OleDbType.VarChar,20);
para_out_serialno.Direction=System.Data.ParameterDirection.Output;
cmd.Parameters.Add(para_out_serialno);
// cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("v_out_serialno",OleDbType.VarChar,
// 10,System.Data.ParameterDirection.Output,false,0,0,"sursn",DataRowVersion.Default,0));
cmd.Connection=ConnClass.conn2;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
string sSerialno=cmd.Parameters["v_out_serialno"].Value.ToString();
cmd.Connection.Close();
return sSerialno;
}
catch(Exception err)
{
//MessageBox.Show(err.Message);
Debug.Fail(err.Message);
return "";
}
}
这是在Oracle环境下调用的。
Edifier0709
2003-09-07
打赏
举报
回复
http://tech.ccidnet.com/pub/disp/Article?columnID=1105&articleID=58457&pageNO=1
doose
2003-09-06
打赏
举报
回复
http://tech.ccidnet.com/pub/disp/Article?columnID=1105&articleID=58457&pageNO=1
zenonline
2003-09-06
打赏
举报
回复
你也可以用SQL语言形式的.如:
SqlCommandtemp.CommandText=@"EXEC produrceName "+parametername1+" ,"+parametername1+","+parametername1;
91bct
2003-09-06
打赏
举报
回复
你是想了解在c#下怎么调用sqlserver存储过程吧?
如果是,如下是我用过的例子代码:
假设存储过程名为Sp_InsertMyTable
在C#中如下调用:
private int MethodOfPro(string ID,string name)
{
string sproc="Sp_InsertMyTable";
SqlCommand cmd=new SqlCommand(sproc);
cmd.CommandType=CommandType.StoreProcedure;
cmd.Connection=this.myConnection;
SqlParameter para1=new SqlParameter("v_id",SqlDbType.Char,10);
para1.value=ID;
cmd.Parameters.Add(para1);
SqlParameter para2=new SqlParameter("v_name",SqlDbType.VarChar,20);
//这个数据类型是Oracle的,不知道SqlServer是不是一样,不好意思:)
para2.value=name;
cmd.Parameters.Add(para2);
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
int iAffectRows=cmd.ExecuteNonQuery();
cmd.Connection.Close();
return iAffectRows;
}
说明:上面的v_id,和v_name是存储过程中的输入参数。
如果有存储过程中有输出参数则在
【SqlParameter para1=new SqlParameter("v_id",SqlDbType.Char,10);
para1.value=ID;
cmd.Parameters.Add(para1);】中做相应的变化就可以了,主要是说明这个参数是输出的。
hq1305018
2003-09-06
打赏
举报
回复
跟执行查询差不多,要注意的是,Command对象的.CommandType 属性要是CommandType.StoredProcedure;另外要有一些参数要加进去。参数有输入型也有输出型。就是用Parameters属性就行了。
qimini
2003-09-06
打赏
举报
回复
?
bys_home
2003-09-06
打赏
举报
回复
short shortRtn = 0;
SqlConnection myCnn = new SqlConnection(strCon);
SqlCommand cmdGetUserName = new SqlCommand();
myCnn.Open();
cmdGetUserName = myCnn.CreateCommand();
cmdGetUserName.CommandType = CommandType.StoredProcedure;
cmdGetUserName.CommandText = "PR_SelectUserName";
cmdGetUserName.Parameters.Add(new SqlParameter("@strUserCode",strUserCode));
cmdGetUserName.Parameters.Add(new SqlParameter("@intRtn",shortRtn));
cmdGetUserName.Parameters["@intRtn"].Direction = ParameterDirection.InputOutput;
strUserName = cmdGetUserName.ExecuteScalar().ToString();
shortRtn = (short)cmdGetUserName.Parameters["@intRtn"].Value;
myCnn.Close();
return shortRtn;
SQL
Server
中
存储
过程
比直接运行
SQL
语句慢的原因
1. 存储
过程
只在创造时进行编译即可,以后每次执行存储
过程
都不需再重新编译,而我们通常使用的
SQL
语句每执行一次就编译一次,所以使用存储
过程
可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete时),可将此复杂操作用存储
过程
封装起来与数据库提供的事务处理结合一起使用。可以极大的提高数据 库的使用效率,减少程序的执行时间,这一点在较大数据量的数据库的操作
中
是非常重要的。在代码上看,
SQL
语句和程序代码语句的分离,可以提高程序代码的 可读性。
C#
实现图像
储存
到
sql
server
2000 或
储存
到文件夹及图像自数据库读取
C#
图像
储存
到
sql
server
2000 或
储存
到文件夹及图像自数据库读取 很好理解
C#
winfrom
储存
过程
C#
winfrom
储存
过程
;
sql
语句实例
SQL
SERVER
2005 简介
SQL
SERVER
2005 简介 ,一直以来,T-
SQL
都是容易上手的结构化查询语言,随着
SQL
Server
的版本演进,除了内部功能增加。
C#
从
SQL
中
读取和存入图片.pdf
C#
从
SQL
中
读取和存入图片.pdf
C#
111,095
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章