Я пытаюсь пропустить все строки gridview ASP.Net и вставить их в базу данных. Код, который я написал для этих действий, приведен ниже. Но проблема заключается в сохранении пустых данных в базе данных.Как перебрать несколько строк gridview asp.net и вставить в базу данных?
for (int i = 0; i < GridView1.Rows.Count; i++)
{
f_name = ((TextBox)GridView1.Rows[i].FindControl("TextBox1"));
l_name = ((TextBox)GridView1.Rows[i].FindControl("TextBox2"));
contacts = ((TextBox)GridView1.Rows[i].FindControl("TextBox3"));
string query = string.Format("insert into [StudentsData].[dbo].[Student_Info] values('{0}','{1}','{2}')",f_name.Text,l_name.Text,contacts.Text);
command.CommandText = query;
try
{
conn.Open();
command.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
ли вы отладки кода и проверить переменные не являются пустыми? Вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. 'String.Format' не мешает. Вам нужно очистить эти параметры с помощью метода «Очистить» на каждой итерации, конечно. –
Не используйте конкатенацию строк, но параметризованные запросы для вставки данных в вашу базу данных. В противном случае вы далеко открыты для SQL-инъекций, и вы не можете жаловаться, если ваша база данных будет уничтожена рано или поздно. –
Есть тонна потенциальных возможностей, но это одна кнопка представить с помощью PostBack? Или вы пытаетесь сделать Ajax? – Greg