Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        //解決 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);
        }