public static result GoSQL(sqllist sl) { result rlt = new result(); rlt.success = false; try { DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(ConnectionString)) { conn.Open(); SqlTransaction trans = conn.BeginTransaction(); for (int i = 0; i < sl.sqldata.Count; i++) { using (SqlCommand cmd = new SqlCommand(sl.sqldata[i].sql, conn)) { cmd.Transaction = trans; cmd.Parameters.AddRange(sl.sqldata[i].parm.ToArray()); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet tempDs = new DataSet(); da.Fill(tempDs, "Results" + i.ToString()); for (int j = 0; j < tempDs.Tables.Count; j++) { ds.Tables.Add(tempDs.Tables[j].Copy()); } } } rlt.DataSet_data = ds; rlt.success = true; trans.Commit(); } } catch (Exception ex) { rlt.msg = ex.Message; } finally { } return(rlt); }
//解決 parm 超過 2100 會出錯的問題 public static result RunSQL2(sqllist sl) { result rlt = new result(); rlt.success = false; try { using (SqlConnection conn = new SqlConnection(ConnectionString)) { conn.Open(); SqlTransaction trans = conn.BeginTransaction(); for (int i = 0; i < sl.sqldata.Count; i++) { using (SqlCommand cmd = new SqlCommand(sl.sqldata[i].sql, conn)) { cmd.Transaction = trans; cmd.Parameters.AddRange(sl.sqldata[i].parm.ToArray()); rlt.CompleteCount += cmd.ExecuteNonQuery(); } } rlt.success = true; trans.Commit(); } } catch (Exception ex) { rlt.msg = ex.Message; } finally { } return(rlt); }