如题
解决方案 »
- 截取日期的年月日
- 帮忙看看这个类实现的是什么样的功能???不是很大。。。
- C# 后台POST数据到另一个页面
- 报表初学者问题。快!!
- 把数据库记录写成Xml数据的问题,请大家帮忙!
- 求助打包问题,在线等!!!!
- 关于text的传值,着急!我把一个字段的直赋给text!字节多就是空的拉!
- SQL SERVER 的server=(local)\NetSDK这个服务在本机上怎么启动啊
- 我用的是WINDOWS XP HOME版,为什么没有IIS、PWS?
- asp.net+extjs+数据库
- ASP.NET2.0 Page.MaintainScrollPositionOnPostBack问题
- 关于失去焦点 updatepanel 的困惑(高分)
存储过程都写在数据库里面
用SQl语句写的,没有用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, "出错提示");
......
}
//带输入参数的存储过程
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绑定
作者: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());
说明: 执行当前 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;