第一種方法:
string str="server=.;uid=sa;pwd=111111;database=text_db";//連接字符串
SqlConnection SCON = null;//連接對象
SqlCommand SCom=new SqlCommand();//命令對象
SCON=new SqlConnection(str);
SCON.Open();
SCom.CommandText = "insert into cum(nm,age,sex,addr) values(‘”+name1+”’, ‘”+age1+”’, ‘”+sex1”’,’”+addr1+”’); insert into cum(nm,age,sex,addr) values(‘”+name1+”’, ‘”+age1+”’, ‘”+sex1”’,’”+addr1+”’)";
SCom.Connection = SCON;
SCom.CommandType = CommandType.Text;
int num = SCom.ExecuteNonQuery();
SCON.Close();
注意:這就是用分號隔開,把多條sql語句寫成了一條sql語句來執行,因爲沒有用參數,可能有sql注入風險。
第二種方法:
string str="server=.;uid=sa;pwd=111111;database=text_db";//連接字符串
SqlConnection SCON;
SqlCommand SCom1=new SqlCommand();//要執行sql語句的第一個命令對象
SqlCommand SCom2=new SqlCommand();//要執行sql語句的第二個命令對象
SCON=new SqlConnection(str);
SCON.Open();
//第一條要執行的sql語句
SCom1.CommandText = "insert into cum(nm,age,sex,addr) values(@name,@age,@sex,@addr)";
SCom1.Parameters.Add("@name", SqlDbType.Text);
SCom1.Parameters.Add("@age", SqlDbType.Int);
SCom1.Parameters.Add("@sex", SqlDbType.Bit);
SCom1.Parameters.Add("@addr", SqlDbType.Text);
SCom1.Parameters["@name"].Value = name1;
SCom1.Parameters["@age"].Value = age1;
SCom1.Parameters["@sex"].Value = sex1;
SCom1.Parameters["@addr"].Value = addr1;
SCom1.Connection = SCON;
SCom1.CommandType = CommandType.Text;
int num = SCom1.ExecuteNonQuery();
//第二條要執行行的sql語句
SCom2.CommandText = "insert into cum(nm,age,sex,addr) values(@name,@age,@sex,@addr)";
SCom2.Parameters.Add("@name", SqlDbType.Text);
SCom2.Parameters.Add("@age", SqlDbType.Int);
SCom2.Parameters.Add("@sex", SqlDbType.Bit);
SCom2.Parameters.Add("@addr", SqlDbType.Text);
SCom2.Parameters["@name"].Value = name2;
SCom2.Parameters["@age"].Value = age2;
SCom2.Parameters["@sex"].Value = sex2;
SCom2.Parameters["@addr"].Value = addr2;
SCom2.Connection = SCON;
SCom2.CommandType = CommandType.Text;
int num = SCom2.ExecuteNonQuery();
SCON.Close();
這種方法就是利用了一個SqlConnection對象進行一次連接,在關閉前執行多個SqlCommand命令對象,執行完後再關閉連接。
第三種方法:
//這裏用事務來執行多條語句
public string InsertAll(string[] cmdtext)
{
//打開連接
Open();
DbTransaction myTrans;
DbCommand mycmd;
if (IsAccess())
{
mycmd =(OleDbCommand) Sqlcon.CreateCommand();
}
else
{
mycmd =(SqlCommand) Sqlcon.CreateCommand();
}
myTrans = Sqlcon.BeginTransaction(IsolationLevel.ReadCommitted);
mycmd.Connection = Sqlcon;
mycmd.Transaction = myTrans;
try
{
for (int i = 0; i < cmdtext.Length; i++)
{
mycmd.CommandText = cmdtext[i];
mycmd.ExecuteNonQuery();
}
myTrans.Commit();
return "1";
}
catch (Exception)
{
if (myTrans != null)
myTrans.Rollback();
return "0";
}
finally
{
//關閉連接
//Sqlcon.Close();
if (Sqlcon != null)
Close();
}
}