İşte veritabanında dinamik olarak tablo oluşturun. Kullanıcı, adını dilediği gibi girer ve dil radyo düğmesini seçer. Yani, i tamsayı cmd.ExecuteNonQuery değerini çalıştırdıktan sonra sorunu -1'den -1'e gidiyor. Ve bu tablonun oluşturulamadığını ancak veritabanına gittiğimde zaten başarıyla oluşturulduğunu gösteriyor. Lütfen yanlış nerede olduğumu bana bildirin. Thanx in Advance! SqlCommand.ExecuteNonQuery
(vurgu mayın) için Dokümanlarcmd.ExecuteNonQuery i tamsayı değeri 0'dan başlıyor
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);
}
}
Bu SQL-Injection için bir davet mi? SQL parametrelerini kullanın! Bunun dışında, her zaman bittiğinde bir bağlantıyı kapatın, en iyi kullanarak 'using-statement':' kullanarak (var con = new SqlConnection (conn)) {con.Açık(); // ...} '(bir istisna durumunda bile bağlantıyı örtülü olarak kapatacaktır). –
@TimSchmelter: Parametreli SQL'in DDL için çalıştığından emin değilim ... –