Я не могу найти ошибку, почему мои данные не были вставлены в базу данных. Я использую сервер sql. DB - 3 поля: 1) id (int) 2) test1 (varchar (50)) 3) test2 (varchar (50)). Я пытаюсь вставить данные из текстового поля и даты.Не удается вставить данные
private void SaveToDB()
{
string strSql = "";
string[] tos = txtTo.Text.Split(';');
for (int i = 0; i < tos.Length; i++)
{
strSql += "INSERT INTO test (test1, test2) VALUES ('" + txtContent.Text.Trim() + "','" + DateTime.Now.ToString() + "');";
}
using (SqlConnection connection = new SqlConnection(Common.ConnetionString))
{
connection.Open();
SqlTransaction tran = connection.BeginTransaction();
try
{
SqlCommand cmd = new SqlCommand(strSql, connection, tran);
cmd.ExecuteNonQuery();
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
}
finally
{
connection.Close();
Response.Redirect("messagelist.aspx?flag=2");
}
}
}
Но как я должен изменить код, что параметр работы в цикле
Обратите внимание, что этот код подходит для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection). Вместо этого используйте ORM, например [Entity Framework] (http://msdn.microsoft.com/en-us/data/ef.aspx), что также, вероятно, поможет исправить вашу проблему. –
Чтобы решить вашу конкретную проблему, можете ли вы отправить фактический SQL, отправляемый в базу данных после замены всех переменных? –
Кроме того, я подозреваю, что вы получаете исключение. Это действительно плохая практика, чтобы поймать и проглотить исключения, как вы это делаете. После 'tran.Rollback();' call 'throw;'. Это может показать проблему. –