我想一次插入一些數據到2個表中,但是我遇到的問題是我一次只能插入一個表。如果我註釋掉第一個插入語句,那麼第二個插入將會工作,反之亦然。使用C#插入一些數據到多個表#
這裏是我的代碼
SqlCommand cmd = new SqlCommand("select Name from MainTable where Name= '" + Name+ "' ", sqlcon);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
lblmsg.Text = "We are already have this Name" + Name;
}
else
{
dr.Close();
sqlcmd.CommandText = "INSERT INTO Table1(Name, Address) VALUES(@Name, @Address)";
sqlcmd.CommandText = "INSERT INTO Table2(Company, Address2) VALUES(@Company, @Address2)";
sqlcmd.Parameters.Clear();
sqlcmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = Name;
sqlcmd.Parameters.Add("@Address", SqlDbType.VarChar).Value = Address;
sqlcmd.Parameters.Add("@Company", SqlDbType.VarChar).Value = Company
sqlcmd.Parameters.Add("@Address2", SqlDbType.VarChar).Value = Address2;
sqlcmd.Connection = sqlcon;
sqlcmd.ExecuteNonQuery();
DV_NameAdd.ChangeMode(DetailsViewMode.ReadOnly);
sqlcon.Close();
}
sqlcon.Close();
正如史蒂夫指出,在您的代碼示例開始時的SELECT語句是潛在的危險。如果Name的值可以通過用戶輸入設置,那麼你有一個SQL注入漏洞。請看看。您可以通過參數化查詢來避免這種危險,而不是使用字符串連接。 – Odrade