110,533
社区成员
发帖
与我相关
我的任务
分享
public bool Do(DataSet ds)
{
using (SqlConnection conn1 = new SqlConnection(DAO.connectionString))
{
if (conn1.State != ConnectionState.Open) conn1.Open();
SqlCommand commandNorthwind = conn1.CreateCommand();
commandNorthwind.CommandType = CommandType.Text;
SqlTransaction tranNorthwind = conn1.BeginTransaction();//开始事务
commandNorthwind.Transaction = tranNorthwind;
try
{
for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = ds.Tables[0].Rows[i];
string sql = "INSERT INTO G_GoodsType VALUES(" + int.Parse(dr[0].ToString())
+ ",'" + dr[1].ToString() + "','" + dr[2].ToString() + "','" + dr[3].ToString() + "') ";
commandNorthwind.CommandText = sql;
commandNorthwind.ExecuteNonQuery();//执行操作
}
commandNorthwind.Transaction.Commit();//提交事务
conn1.Close();//关闭数据库链接资源
return true;
}
catch//如果有异常 不一定要捕捉异常 但要rollback事务
{
if (commandNorthwind.Transaction != null && conn1 != null)
{
commandNorthwind.Transaction.Rollback();//rollback事务
conn1.Close();//关闭数据库链接
}
return false;
}
}
}
public static string GetSqlString(DataRow dr, out SqlParameter[] parameters)
{
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO G_GoodsType VALUES(@ID,'@Code','@NAME','@Note')");
parameters = new SqlParameter[]
{
new SqlParameter("@ID",SqlDbType.Int, Convert.ToInt32(dr[0])),
new SqlParameter("@Code",SqlDbType.VarChar,32, Convert.ToString(dr[1])),
new SqlParameter("@NAME",SqlDbType.VarChar,32, Convert.ToString(dr[2])),
new SqlParameter("@Note",SqlDbType.VarChar,32, Convert.ToString(dr[3]))
};
return sb.ToString();//将sqlreturn出去
}
parameters = new SqlParameter[] { new SqlParameter(":ID", Convert.ToString(dr[0])),