Aquí creo tabla en la base de datos dinámicamente. El usuario ingresa el nombre como lo desea y selecciona el idioma del botón de radio. Entonces, el problema es que después de ejecutar el valor de cmd.ExecuteNonQuery de mi entero va de -1 a 0. Y muestra que no se pudo crear la tabla, pero cuando voy a la base de datos, ya se creo correctamente. Por favor, hágame saber dónde estoy haciendo mal. ¡Gracias por adelantado!cmd.ExecuteNonQuery valor de i entero va -1 desde 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);
}
}
¿Es esto una invitación para la inyección de SQL? Use SQL-Parameters! Aparte de eso, siempre cierre una conexión cuando haya terminado con ella, lo mejor es usar 'using-statement':' using (var con = new SqlConnection (conn)) {con.Abierto(); // ...} '(cerrará la conexión implícitamente, incluso en el caso de una excepción). –
@TimSchmelter: No estoy seguro de que el SQL parametrizado funcione para DDL ... –