如题,怎么改才能把链库的代码写在循环外边呢? private void toolStripButton1_Click(object sender, EventArgs e)
{
treeList1.CloseEditor();
DataTable dt = treeList1.DataSource as DataTable; foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
if (col.Caption.ToLower() == "id" || col.Caption.ToLower() == "loginname" || col.Caption.ToLower() == "mc")
continue;
update(row["id"].ToString(),col.Caption,Convert.ToBoolean(row[col.Caption]));
}
}
}
private void update(string id,string fName,bool val)
{
List<SqlParameter> paraList = new List<SqlParameter>();
paraList.Add(new SqlParameter("@val", SqlDbType.Bit) { Value = val });
StringBuilder strSql = new StringBuilder();
strSql.AppendFormat("update QX set {0}={1} where id = {2}",fName,Convert.ToInt32( val),id); SqlConnection conn = DBConnection.StringConnection();
conn.Open();
SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.AddRange(paraList.ToArray());
int i = (int)cmd.ExecuteNonQuery();
DBConnection.StringConnection().Close();
}
{
treeList1.CloseEditor();
DataTable dt = treeList1.DataSource as DataTable; foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
if (col.Caption.ToLower() == "id" || col.Caption.ToLower() == "loginname" || col.Caption.ToLower() == "mc")
continue;
update(row["id"].ToString(),col.Caption,Convert.ToBoolean(row[col.Caption]));
}
}
}
private void update(string id,string fName,bool val)
{
List<SqlParameter> paraList = new List<SqlParameter>();
paraList.Add(new SqlParameter("@val", SqlDbType.Bit) { Value = val });
StringBuilder strSql = new StringBuilder();
strSql.AppendFormat("update QX set {0}={1} where id = {2}",fName,Convert.ToInt32( val),id); SqlConnection conn = DBConnection.StringConnection();
conn.Open();
SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.AddRange(paraList.ToArray());
int i = (int)cmd.ExecuteNonQuery();
DBConnection.StringConnection().Close();
}
或者自己写一个。
连接的代码已经在DBConnection这个class里了
你检查下这个连字符串是否正确
另外
DBConnection.StringConnection().Close();
最好改为了conn.Close();
private void toolStripButton1_Click(object sender, EventArgs e)
{
treeList1.CloseEditor();
DataTable dt = treeList1.DataSource as DataTable; try
{
SqlConnection conn = DBConnection.StringConnection();
conn.Open(); foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
if (col.Caption.ToLower() == "id" || col.Caption.ToLower() == "loginname" || col.Caption.ToLower() == "mc")
continue;
update(row["id"].ToString(),col.Caption,Convert.ToBoolean(row[col.Caption]), conn);
}
}
}
finally
{
if (conn != null)
{
DBConnection.StringConnection().Close();
}
}
}
private void update(string id,string fName,bool val, SqlConnection conn)
{
List<SqlParameter> paraList = new List<SqlParameter>();
paraList.Add(new SqlParameter("@val", SqlDbType.Bit) { Value = val });
StringBuilder strSql = new StringBuilder();
strSql.AppendFormat("update QX set {0}={1} where id = {2}",fName,Convert.ToInt32( val),id); SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.AddRange(paraList.ToArray());
int i = (int)cmd.ExecuteNonQuery();
}