J'ai besoin d'insérer user_id et quiz_iz dans une colonne de table, j'ai le code ci-dessous qui fonctionne pour insérer plusieurs valeurs sélectionnées d'un contrôle dans une colonne de table, mais je ne peux pas comprendre comment insérer dans 2 champs à partir des valeurs répertoriées sur les deux contrôles lorsque vous cliquez sur Envoyer.Insérer dans la table à partir de deux contrôles
J'utilise la connexion à mysql odbc, thats étaient la table que j'ai besoin d'insérer est situé ....
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Text;
using System.Data;
using System.Data.Odbc;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void InsertRecords(StringCollection sc, StringCollection sc2)
{
string ConnectionString = @"driver={MySQL ODBC 5.1 Driver};server=localhost;database=db_mydb;uid=;pwd=;";
OdbcConnection conn = new OdbcConnection(ConnectionString);
StringBuilder sb = new StringBuilder(string.Empty);
StringBuilder sb2 = new StringBuilder(string.Empty);
foreach (string item in sc)
{
const string sqlStatement = "INSERT INTO jos_jquarks_users_quizzes (quiz_id,user_id) VALUES";
sb.AppendFormat("{0}('{1}'); ", sqlStatement, item);
sb2.AppendFormat("{0}('{1}'); ", sqlStatement, item);
}
try
{
conn.Open();
OdbcCommand cmd = new OdbcCommand(sb.ToString(), conn);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Records Successfuly Saved!');", true);
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
StringCollection sc = new StringCollection();
StringCollection sc2 = new StringCollection();
foreach (ListItem item in ListBox1.Items)
{
if (item.Selected)
{
sc.Add(item.Text);
}
}
foreach (ListItem item in ListBox2.Items)
{
if (item.Selected)
{
sc2.Add(item.Text);
}
}
InsertRecords(sc , sc2);
}
}
Vous devriez penser à utiliser SQL paramétré. Qu'est-ce que vous faites maintenant est d'envoyer une chaîne ouverte au serveur que tout le monde peut échapper et exécuter une injection SQL. Pensez à utiliser un proc stocké ou juste une requête paramétrée. – gh9
Vous ne savez pas si je suis clair sur ce que vous essayez de faire. Essayez-vous d'insérer un enregistrement pour chaque valeur dans sc * sc2 (chaque combinaison possible)? –