这是我写的一个存储过程 ,语法检查时并没有错:
CREATE procedure checkName
@tableName varchar(50) output,
@name varchar(100) output,
@unit varchar(100) output,
@num varchar(50) output,
@build varchar(50) output,
@install varchar(50) output,
@imp varchar(50) output,
@other varchar(50) output,
@total varchar(50) output,
@standard varchar(50) output
as
declare @sql varchar(2000)set @sql='update ' +@tableName+ ' set d_unit='+@unit+',d_num='+@num+',d_build='+@build+',d_install='+@install+',d_imp='+@imp+',d_other='+@other+',d_total='+@total+',d_standard='+@standard+'where d_name='+@name+' '
exec(@sql)
GO
调用程序如下:
public void procedure(string tableName,string name,string unit,string num,string build,string install,string imp,string other,string total,string standard)
{
SqlConnection sqlc = new SqlConnection("server=.;database=tlxt;uid=sa;pwd=;integrated security=SSPI;persist security info=False;");
SqlCommand comm = new SqlCommand("checkName", sqlc);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@tableName", SqlDbType.VarChar,50);
comm.Parameters["@tableName"].Value = tableName.ToString ();
comm.Parameters.Add("@name", SqlDbType.VarChar, 100);
comm.Parameters["@name"].Value = name.ToString ();
comm.Parameters.Add("@unit", SqlDbType.VarChar, 100);
comm.Parameters["@unit"].Value = unit.ToString();
comm.Parameters.Add("@num", SqlDbType.VarChar, 50);
comm.Parameters["@num"].Value = num.ToString();
comm.Parameters.Add("@build", SqlDbType.VarChar, 50);
comm.Parameters["@build"].Value = build.ToString();
comm.Parameters.Add("@install", SqlDbType.VarChar, 50);
comm.Parameters["@install"].Value = install.ToString();
comm.Parameters.Add("@imp", SqlDbType.VarChar, 50);
comm.Parameters["@imp"].Value = imp.ToString();
comm.Parameters.Add("@other", SqlDbType.VarChar, 50);
comm.Parameters["@other"].Value = other.ToString();
comm.Parameters.Add("@total", SqlDbType.VarChar, 50);
comm.Parameters["@total"].Value = total.ToString();
comm.Parameters.Add("@standard", SqlDbType.VarChar, 50);
comm.Parameters["@standard"].Value = standard.ToString(); comm.Connection.Open();
comm.ExecuteNonQuery();
Response.Write("数据已经成功导入!");
}运行之后说d_unit和d_name导入的数据无效,这是怎么回事,存储过程好像没有错啊。还请大虾帮忙!
CREATE procedure checkName
@tableName varchar(50) output,
@name varchar(100) output,
@unit varchar(100) output,
@num varchar(50) output,
@build varchar(50) output,
@install varchar(50) output,
@imp varchar(50) output,
@other varchar(50) output,
@total varchar(50) output,
@standard varchar(50) output
as
declare @sql varchar(2000)set @sql='update ' +@tableName+ ' set d_unit='+@unit+',d_num='+@num+',d_build='+@build+',d_install='+@install+',d_imp='+@imp+',d_other='+@other+',d_total='+@total+',d_standard='+@standard+'where d_name='+@name+' '
exec(@sql)
GO
调用程序如下:
public void procedure(string tableName,string name,string unit,string num,string build,string install,string imp,string other,string total,string standard)
{
SqlConnection sqlc = new SqlConnection("server=.;database=tlxt;uid=sa;pwd=;integrated security=SSPI;persist security info=False;");
SqlCommand comm = new SqlCommand("checkName", sqlc);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@tableName", SqlDbType.VarChar,50);
comm.Parameters["@tableName"].Value = tableName.ToString ();
comm.Parameters.Add("@name", SqlDbType.VarChar, 100);
comm.Parameters["@name"].Value = name.ToString ();
comm.Parameters.Add("@unit", SqlDbType.VarChar, 100);
comm.Parameters["@unit"].Value = unit.ToString();
comm.Parameters.Add("@num", SqlDbType.VarChar, 50);
comm.Parameters["@num"].Value = num.ToString();
comm.Parameters.Add("@build", SqlDbType.VarChar, 50);
comm.Parameters["@build"].Value = build.ToString();
comm.Parameters.Add("@install", SqlDbType.VarChar, 50);
comm.Parameters["@install"].Value = install.ToString();
comm.Parameters.Add("@imp", SqlDbType.VarChar, 50);
comm.Parameters["@imp"].Value = imp.ToString();
comm.Parameters.Add("@other", SqlDbType.VarChar, 50);
comm.Parameters["@other"].Value = other.ToString();
comm.Parameters.Add("@total", SqlDbType.VarChar, 50);
comm.Parameters["@total"].Value = total.ToString();
comm.Parameters.Add("@standard", SqlDbType.VarChar, 50);
comm.Parameters["@standard"].Value = standard.ToString(); comm.Connection.Open();
comm.ExecuteNonQuery();
Response.Write("数据已经成功导入!");
}运行之后说d_unit和d_name导入的数据无效,这是怎么回事,存储过程好像没有错啊。还请大虾帮忙!
解决方案 »
- 时时间已到。超时时间已到,但是尚未从池中获取连接。
- access数据库的一个查询和更新问题
- 做了个图书网站-----想实现提供下载功能。????怎么办呢
- 请问如何获得数据库里面Image字段里的文件的MIME?
- aspx中如何使用包含文件?
- 给HyperLink控件加入图片时,能控制图片的大小吗?
- 如何把DataSet中的两个DataTable中的数据,同时显示在一个网格上
- 各位高手帮忙了 比较简单的问题了
- 如何配置跨站点的ASP.NET应用程序,实现单点登录
- 在ASP。NET中,怎样把datagrid里的数据导入到EXCEL里啊?
- 如何固定gridview的行高,并且数据不换行,现在用GRIDVIEW自己的很别扭
- .net 2005中制作安装程的问题
而你传入的 @**** 应该就是修改以后的值 因此 你在存储过程中不用定义成 output2、如果你要获取添加以后的值 即 output的值 则 不能定义为:comm.Parameters["@standard"].Value = standard.ToString(); 应该定义为 output个人意见