J'essaie d'insérer des données générées dynamiquement textbox
de gridview
dans la base de données. cependant, je reçois l'exception de la propriété CommandText
n'a pas été initialisé cmd.executeNonQuery();
ExecuteNonQuery: la propriété CommandText n'a pas été initialisée dans C#
private void InsertRecords(StringCollection sc)
{
StringBuilder sb = new StringBuilder(string.Empty);
string[] splitItems = null;
const string sqlStatement = "INSERT INTO Ingredients_List (Ingredients1) VALUES";
foreach (string item in sc)
{
if (item.Contains(","))
{
splitItems = item.Split(",".ToCharArray());
sb.AppendFormat("{0}('{1}'); ", sqlStatement, splitItems[0]);
}
}
// conn.Open();
using (SqlConnection connn = new SqlConnection(GetConnectionString()))
{
using (SqlCommand cmd = new SqlCommand(sb.ToString(), connn))
{
connn.Open();
// cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
connn.Close();
}
// Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Records Successfuly Saved!');", true);
}
}
ce qui est sb.ToString() retour? – Baahubali
1) Vous n'ajoutez pas le sqlStatement au StringBuilder 2) À moins qu'il n'y ait un, dans l'élément, vous ne l'insérerez pas dans la base de données. 3) Veuillez utiliser des requêtes paramétrées. C'est plus sûr. Votre méthode actuelle est largement ouverte à l'injection SQL. – john
Ce que j'essaie de faire est de créer un événement onClick dynamique de la zone de texte, puis d'enregistrer des données dans la base de données. alors comment utiliser une requête paramétrée pour cela? J'utilise cet exemple http://www.c-sharpcorner.com/uploadfile/8c19e8/dynamically-adding-and-deleting-rows-in-gridview-and-saving/ –