цикл через текстовые поля c # - PullRequest
0 голосов
/ 27 января 2012

У меня есть 5 текстовых полей, и я хочу зациклить их, получить каждое значение текстового поля и вставить его в таблицу в отдельной строке. Как я могу это сделать? Я пробовал что-то вроде этого:

TextBox[] rasp = new TextBox[] { textbox1, textBox2, textBox3, 
                                 textBox4, textBox5 };

foreach (TextBox  raspuns in rasp) {
     SqlConnection con = new SqlConnection(
  ConfigurationManager.ConnectionStrings["chestionar"].ConnectionString);
     SqlCommand cmd = new SqlCommand(
        "INSERT INTO Raspunsuri Values('" + raspuns +"',@cnp,@data,'5')", con);
     cmd.Parameters.AddWithValue("@cnp", Session["sesiune_cnp"]);
     //cmd.Parameters.AddWithValue("@raspuns", raspuns);
     cmd.Parameters.AddWithValue("@data", DateTime.Now.ToLocalTime());
}

Ответы [ 2 ]

2 голосов
/ 27 января 2012

Вы, вероятно, имели в виду:

 SqlCommand cmd = new SqlCommand("INSERT INTO Raspunsuri Values('" + raspuns.Text +"',@cnp,@data,'5')", con);

вместо:

 SqlCommand cmd = new SqlCommand("INSERT INTO Raspunsuri Values('" + raspuns +"',@cnp,@data,'5')", con);

Поскольку вы не можете объединить string и TextBox, поскольку это объект, одно из полей которого Text, в котором содержится введенный текст.

Примечание. Остерегайтесь атак с использованием SQL-инъекций, не делайте так, вместо этого прибегайте к закомментированному решению с помощью cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);.Опять же, обязательно поставьте raspuns.Text.

1 голос
/ 27 января 2012

Предполагается, что проблема в этой строке:

//cmd.Parameters.AddWithValue("@raspuns", raspuns);

Измените его на:

cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...