如何理解C#中的sqlparameter 请问一下!如何理解C#中的sqlparameter 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表示 SqlCommand 的参数 对象而已,包括了sqlcommand需要的各个参数,可以通过带参构造函数实例化 //通过 虚拟表 对数据表进行更新 public bool Update(DataTable userTable) { SqlConnection con = null; try { con = new SqlConnection(ConnectionString); con.Open(); string sql = " update " + userTable.TableName + " set "; foreach(DataColumn dr in userTable.Columns) { sql += dr.ColumnName + "=@" + dr.ColumnName + ","; } sql = sql.Substring(0, sql.Length - 1) + " where "; SqlDataAdapter com = new SqlDataAdapter(); com.UpdateCommand = new SqlCommand(sql,con); foreach (DataColumn dc in userTable.Columns) { SqlParameter sp = new SqlParameter("@" + dc.ColumnName, dc.DataType); sp.SourceColumn = dc.ColumnName; com.UpdateCommand.Parameters.Add(sp); } DataTable d = this.Select(" exec sp_pkeys "+userTable.TableName); foreach(DataRow dr in d.Rows) { sql += dr[3].ToString().Trim() + "=@" + dr[3].ToString().Trim() + " and "; //主键不更新 com.UpdateCommand.Parameters["@" + dr[3].ToString().Trim()].SourceVersion = DataRowVersion.Original; } sql = sql.Substring(0, sql.Length - 4); com.UpdateCommand.CommandText = sql; return Convert.ToBoolean(com.Update(userTable)); } catch(Exception ex) { MessageBox.Show(ex.Message, "错误提示"); return false; } finally { if(con.State== ConnectionState .Open) { con.Close(); } } } LZ 看下 这个 方法就知道了 这个方法是 通过 datatable 修改数据库表的 c#用rasdial拨号怎么返回拨号状态?或怎么表现已连上? DevExpress 中如何显示图片列表 如何修改类库项目输出文件名的后缀?例如mylib.dll--->mylib.xxx CSDN 的分数怎么赚啊? user Control 和customer user control 的问题 c#listview如何在clear了之后任然能显示当前选中行 请教,如何发送按键消息? 新手求指教,数组在定义了全局变量后,在方法一中赋值后却无法在方法二中继续使用该数组 C#中有分大小写的么? C# 可折叠面板,自定义控件 修改数据库 急救C#中,屏幕四周如何表示?
public bool Update(DataTable userTable)
{
SqlConnection con = null;
try
{
con = new SqlConnection(ConnectionString);
con.Open(); string sql = " update " + userTable.TableName + " set ";
foreach(DataColumn dr in userTable.Columns)
{
sql += dr.ColumnName + "=@" + dr.ColumnName + ",";
}
sql = sql.Substring(0, sql.Length - 1) + " where ";
SqlDataAdapter com = new SqlDataAdapter();
com.UpdateCommand = new SqlCommand(sql,con);
foreach (DataColumn dc in userTable.Columns)
{
SqlParameter sp = new SqlParameter("@" + dc.ColumnName, dc.DataType);
sp.SourceColumn = dc.ColumnName;
com.UpdateCommand.Parameters.Add(sp);
}
DataTable d = this.Select(" exec sp_pkeys "+userTable.TableName); foreach(DataRow dr in d.Rows)
{
sql += dr[3].ToString().Trim() + "=@" + dr[3].ToString().Trim() + " and ";
//主键不更新
com.UpdateCommand.Parameters["@" + dr[3].ToString().Trim()].SourceVersion = DataRowVersion.Original;
}
sql = sql.Substring(0, sql.Length - 4); com.UpdateCommand.CommandText = sql;
return Convert.ToBoolean(com.Update(userTable));
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
return false;
}
finally
{
if(con.State== ConnectionState .Open)
{
con.Close();
}
}
}
LZ 看下 这个 方法就知道了 这个方法是 通过 datatable 修改数据库表的