求.net c# 存储过程 教程

sskeyial 2008-06-30 10:10:54
如题
...全文
1386 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
周锋 2011-08-02
  • 打赏
  • 举报
回复
使用ADO.NET
yuchenln 2010-01-15
  • 打赏
  • 举报
回复
纯mark
yagebu1983 2008-07-01
  • 打赏
  • 举报
回复
网上很多!!!
看网上资料即可!!
sskeyial 2008-07-01
  • 打赏
  • 举报
回复
我刚做了一个测试的程序 提示有错 大伙帮忙改下

将 varchar 值 'select id from [big] where id=' 转换为数据类型为 int 的列时发生语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 将 varchar 值 'select id from [big] where id=' 转换为数据类型为 int 的列时发生语法错误。

源错误:


行 31: SqlDataAdapter adapter = new SqlDataAdapter(selectCMD);
行 32: myDS.Clear();
行 33: adapter.Fill(myDS, "TestTable1");
行 34: GridView1.DataSource = myDS.Tables[0].DefaultView;
行 35: }
源文件: d:\MyWeb\aspx\存储过程\测试\Default.aspx.cs 行: 33


=====================================================================================
我的 存储过程

ALTER PROCEDURE dbo.SelectSql
@id int ,
@dbName varchar(255)
--@count int OUTPUT
AS
/* SET NOCOUNT ON */
declare @strSQL varchar(5000) -- 主语句
if @id!='' begin
set @strSQL='select id from [' + @dbName + '] where id=' + @id+''
exec ( @strSQL)
end
=====================================================================================
调用代码

SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
SqlCommand selectCMD = new SqlCommand("SelectSql", Conn);
selectCMD.CommandType = CommandType.StoredProcedure;

//添参数

SqlParameter strlac = new SqlParameter("@id", SqlDbType.Int);
selectCMD.Parameters.Add(strlac);
strlac.Value = 1;

SqlParameter strlon = new SqlParameter("@dbName", SqlDbType.VarChar);
strlon.Value = "big";
selectCMD.Parameters.Add(strlon);

// 创建DataAdapter对象填充数据
DataSet myDS = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(selectCMD);
myDS.Clear();
adapter.Fill(myDS, "TestTable1");
GridView1.DataSource = myDS.Tables[0].DefaultView;
sskeyial 2008-07-01
  • 打赏
  • 举报
回复
ok 多谢了

conan304 2008-07-01
  • 打赏
  • 举报
回复
刚好,把这个copy给楼主吧:

C#获取存储过程的Return返回值和Output输出参数值
作者:dnawo 日期:2008-04-10
字体大小: 小 中 大
1.获取Return返回值

程序代码
存储过程
Create PROCEDURE MYSQL 
@a int,
@b int
AS
return @a + @b
GO

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); 
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());


2.获取Output输出参数值


程序代码
//存储过程
Create PROCEDURE MYSQL 
@a int,
@b int,
@c int output
AS
Set @c = @a + @b
GO

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); 
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());
城市猎人0611 2008-07-01
  • 打赏
  • 举报
回复
我做的一个例子:
//带输入参数的存储过程
SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ToString());
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn2;
da.SelectCommand.CommandText = "ParamCustomer1";//存储过程名
da.SelectCommand.CommandType = CommandType.StoredProcedure;

SqlParameter param = new SqlParameter("@cCusName", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = TextBox1.Text;//参数从textBox输入
da.SelectCommand.Parameters.Add(param);

da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind(); //GridView1绑定
donghai83 2008-07-01
  • 打赏
  • 举报
回复
C#调用存储过程简单完整例子
文章来源:http://blog.sithere.net/article.asp?id=1525.html

.net中的存储过程执行,用到的存储过程依旧是addnewuser,如下:
程序代码
Create PROCEDURE dbo.addnewuser
(
@name varchar(40),
@pass varchar(40),
@email varchar(40),
@qq varchar(40)
)
AS
insert into userinfo(name,pass,email,qq) values(@name,@pass,@email,@qq)
GO


c#程序代码如下:

程序代码
try
{
SqlConnection conn = new SqlConnection(); //创建sqlconnection对象
conn.ConnectionString = "server=(local);database=test;uid=sa;pwd=;"; //设置连接字符串
conn.Open(); //打开连接
SqlCommand cmd = conn.CreateCommand(); //创建与当前conn对象关联的cmd对象
cmd.CommandType = CommandType.StoredProcedure; //设置该cmd对象的命令类型为存储过程
cmd.CommandText = "addnewuser"; //将CommandText的值设为存储过程名称
cmd.Parameters.Add(new SqlParameter("@name", name.Text.Trim())); //添加存储过程参数
cmd.Parameters.Add(new SqlParameter("@pass", pass.Text.Trim()));
cmd.Parameters.Add(new SqlParameter("@email", email.Text.Trim()));
cmd.Parameters.Add(new SqlParameter("@qq", qq.Text.Trim()));
cmd.ExecuteNonQuery(); //执行存储过程
MessageBox.Show("用户注册成功!", "提示信息");
......
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "出错提示");
......
}
sskeyial 2008-07-01
  • 打赏
  • 举报
回复
怎么调用???来个例子吧
yeak2001 2008-07-01
  • 打赏
  • 举报
回复
在SQL里写好存储过程,然后再C#里调用调用的
xhan2000 2008-07-01
  • 打赏
  • 举报
回复
SqlCommand.CommandType=CommandType.StroeProcedure...

c#可以写sql2005的存出过程
sskeyial 2008-07-01
  • 打赏
  • 举报
回复
哦,能说下怎么调用吗
woshigefantong 2008-06-30
  • 打赏
  • 举报
回复
存储过程不是在这里的
存储过程都写在数据库里面
用SQl语句写的,没有用c#写的
zzyyc 2008-06-30
  • 打赏
  • 举报
回复
去SQL版,一找一大堆
whoami333 2008-06-30
  • 打赏
  • 举报
回复
存储过程是数据库的吧。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧