public static bool TranModel(int[] empids, string id, string mname, string uname, string names, DateTime stime, DateTime etime, string re)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]))
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
SqlTransaction myTran = connection.BeginTransaction();
try
{
SqlParameter[] parameter ={
new SqlParameter("@mname",SqlDbType.VarChar),
new SqlParameter("@uname",SqlDbType.VarChar),
new SqlParameter("@names",SqlDbType.VarChar),
new SqlParameter("@stime",SqlDbType.DateTime),
new SqlParameter("@etime",SqlDbType.DateTime),
new SqlParameter("@re",SqlDbType.VarChar),
new SqlParameter("@id",SqlDbType.VarChar),
new SqlParameter("@content",SqlDbType.VarChar)
};
parameter[0].Value = mname;
parameter[1].Value =uname;
parameter[2].Value = names;
parameter[3].Value = stime;
parameter[4].Value = etime;
parameter[5].Value = re;
parameter[6].Value = id;
parameter[7].Value="负责人:"+uname+re;
string strsql = "insert into MeetProcess(x_id,m_name,u_name,u_names,m_stime,m_etime,m_re)" +
"values(@id,@mname,@uname,@names,@stime,@etime,@re)";
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = connection;
cmd1.Transaction = myTran;
foreach (SqlParameter p in parameter)
{
cmd1.Parameters.Add(p);
}
cmd1.CommandText = strsql;
cmd1.ExecuteNonQuery();
connection.Close();
for (int i = 0; i < empids.Length; i++)
{
string strsql2 = "";
if (empids[i] != 0)
{
strsql2 = "insert into cpSchedule(EmpID,Subject,SchType,Content,PrivFlag,FDate,TDate,togehter)values" +
"(" + empids[i] + ",@mname,'项目流程',@content,'1',@stime,@etime,@names)";
}
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
if(strsql2!="")
cmd1.CommandText = strsql2;
cmd1.ExecuteNonQuery();
connection.Close();
}
myTran.Commit();
return true;
}
catch (Exception ex)
{
string mss = ex.Message;
myTran.Rollback();
return false;
}
}
}
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]))
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
SqlTransaction myTran = connection.BeginTransaction();
try
{
SqlParameter[] parameter ={
new SqlParameter("@mname",SqlDbType.VarChar),
new SqlParameter("@uname",SqlDbType.VarChar),
new SqlParameter("@names",SqlDbType.VarChar),
new SqlParameter("@stime",SqlDbType.DateTime),
new SqlParameter("@etime",SqlDbType.DateTime),
new SqlParameter("@re",SqlDbType.VarChar),
new SqlParameter("@id",SqlDbType.VarChar),
new SqlParameter("@content",SqlDbType.VarChar)
};
parameter[0].Value = mname;
parameter[1].Value =uname;
parameter[2].Value = names;
parameter[3].Value = stime;
parameter[4].Value = etime;
parameter[5].Value = re;
parameter[6].Value = id;
parameter[7].Value="负责人:"+uname+re;
string strsql = "insert into MeetProcess(x_id,m_name,u_name,u_names,m_stime,m_etime,m_re)" +
"values(@id,@mname,@uname,@names,@stime,@etime,@re)";
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = connection;
cmd1.Transaction = myTran;
foreach (SqlParameter p in parameter)
{
cmd1.Parameters.Add(p);
}
cmd1.CommandText = strsql;
cmd1.ExecuteNonQuery();
connection.Close();
for (int i = 0; i < empids.Length; i++)
{
string strsql2 = "";
if (empids[i] != 0)
{
strsql2 = "insert into cpSchedule(EmpID,Subject,SchType,Content,PrivFlag,FDate,TDate,togehter)values" +
"(" + empids[i] + ",@mname,'项目流程',@content,'1',@stime,@etime,@names)";
}
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
if(strsql2!="")
cmd1.CommandText = strsql2;
cmd1.ExecuteNonQuery();
connection.Close();
}
myTran.Commit();
return true;
}
catch (Exception ex)
{
string mss = ex.Message;
myTran.Rollback();
return false;
}
}
}
后面
那么for循环里的打开很多链接,没有在for内显示关闭,没什么问题吧?
我对上面做的修改就是你说的把connection.Close();放在了myTran.Commit();后面,myTran.Commit();我没有动
cmd1.Transaction = myTran;
这不是加上了么?
你不就是想要集体提交,错误集体不提价吗
我给你改了改,意思就是把要提交的sql一起提交
哪里有问题还请指出 public static bool TranModel(int[] empids, string id, string mname, string uname, string names, DateTime stime, DateTime etime, string re)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]))
{
System.Text.StringBuuilde sb = new Sestem.Test.StringBuilde();
SqlParameter[] parameter ={
new SqlParameter("@mname",SqlDbType.VarChar),
new SqlParameter("@uname",SqlDbType.VarChar),
new SqlParameter("@names",SqlDbType.VarChar),
new SqlParameter("@stime",SqlDbType.DateTime),
new SqlParameter("@etime",SqlDbType.DateTime),
new SqlParameter("@re",SqlDbType.VarChar),
new SqlParameter("@id",SqlDbType.VarChar),
new SqlParameter("@content",SqlDbType.VarChar)
};
parameter[0].Value = mname;
parameter[1].Value =uname;
parameter[2].Value = names;
parameter[3].Value = stime;
parameter[4].Value = etime;
parameter[5].Value = re;
parameter[6].Value = id;
parameter[7].Value="负责人:"+uname+re;
sb.Aqqend( "insert into MeetProcess(x_id,m_name,u_name,u_names,m_stime,m_etime,m_re)" +
"values(@id,@mname,@uname,@names,@stime,@etime,@re);");
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = connection;
foreach (SqlParameter p in parameter)
{
cmd1.Parameters.Add(p);
}
cmd1.CommandText = strsql;
cmd1.ExecuteNonQuery();
connection.Close();
for (int i = 0; i < empids.Length; i++)
{
string strsql2 = "";
if (empids[i] != 0)
{
sb.Aqqend( "insert into cpSchedule(EmpID,Subject,SchType,Content,PrivFlag,FDate,TDate,togehter)values" +
"(" + empids[i] + ",@mname,'项目流程',@content,'1',@stime,@etime,@names)";);
}
}
try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
cmd1.CommandText = strsql;
cmd1.ExecuteNonQuery();
}
return true; }
catch (Exception ex)
{
string mss = ex.Message;
return false;
}
}
}