Ở đây tôi tạo bảng trong cơ sở dữ liệu động. Người dùng nhập tên như mong muốn của mình và chọn radio ngoại tuyến. Vì vậy, vấn đề là sau khi thực hiện cmd.ExecuteNonQuery giá trị của số nguyên i là đi -1 từ 0. Và cho thấy rằng bảng couldnt được tạo ra nhưng khi tôi đi đến cơ sở dữ liệu của nó đã được tạo thành công. Xin vui lòng cho tôi biết nơi tôi đang làm sai. Thanx trong Advance !!cmd.ExecuteNonQuery giá trị của số nguyên i là đi -1 từ 0
protected void btnpaper_Click(object sender, EventArgs e)
{
try
{
string conn = ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
SqlConnection con = new SqlConnection(conn);
con.Open();
char[] arr = new char[] {'n','g','l','i','s','h'};
string str = "CREATE TABLE " + Label1.Text.Trim() +
txtpaperset.Text.Trim()+ rbtnEng.Text.TrimEnd(arr) +
"(" + "quesNo int NOT NULL PRIMARY KEY, " +
"question varchar(1000) NOT NULL," +
"ansA varchar(500) NOT NULL, " +
"ansB varchar(500) NOT NULL, " +
"ansC varchar(500) NOT NULL, " +
"ansD varchar(500) NOT NULL, " +
"rightAns varchar(50) NOT NULL " + ")";
SqlCommand cmd = new SqlCommand(str, con);
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
lblerrormsg.Visible = true;
con.Close();
}
else
{
lblerrormsg.Text = "Table Not Created Please Try with Different Name!";
con.Close();
}
}
catch (System.Exception excep)
{
MessageBox.Show(excep.Message);
}
}
Đây có phải là lời mời cho SQL-Injection không? Sử dụng tham số SQL! Ngoài ra, luôn luôn đóng một kết nối khi bạn đã kết thúc với nó, tốt nhất bằng cách sử dụng 'using-statement':' using (var con = new SqlConnection (conn)) {con.Mở(); // ...} '(nó sẽ đóng kết nối ngầm, ngay cả trong trường hợp ngoại lệ). –
@TimSchmelter: Tôi không chắc SQL được tham số hóa hoạt động cho DDL ... –