2013-12-13 2 views
5

Я загружаю данные в базы данных, но моя форма загружает одни и те же данные дважды в базах данных. Сначала я загружал данные, не проверяя, что погода вставлена ​​или нет, она отлично работает, она загружала данные за один раз теперь я поставил проверенный, что если данные вставлены, чем показывают, что данные сообщения вставлены успешно, но это загрузка данных дважды.Веб-форму загружать те же данные дважды в базу данных

Вот мой код:

SqlConnection conn1 = new SqlConnection("Data Source=ZAZIKHAN\\SQLEXPRESS;Initial Catalog=resume;Integrated Security=True"); 
conn1.Open(); 

SqlCommand cmd3 = new SqlCommand("insert into Profile(Id,Name,JobTitle,Phone,Email,Address,Website,Facebook,Twitter,GooglePlus,Skype,Picture,WhyMeText) values('"+ID.Text+"','" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox7.Text + "','" + TextBox8.Text + "','" + TextBox9.Text + "','" + TextBox10.Text + "','" + uploadFolderPath + "','" + TextArea1.InnerText + "')", conn1); 

cmd3.ExecuteNonQuery(); 
if (cmd3.ExecuteNonQuery() == 1) 
{ 
     Response.Write("<script LANGUAGE='JavaScript' >alert('information saved Successful')</script>"); 
     TextBox1.Text = ""; 
     TextBox2.Text = ""; 
     TextBox3.Text = ""; 
     TextBox4.Text = ""; 
     TextBox5.Text = ""; 
     TextBox6.Text = ""; 
     TextBox7.Text = ""; 
     TextBox8.Text = ""; 
     TextBox9.Text = ""; 
     TextBox10.Text = ""; 
     TextArea1.InnerText = ""; 
} 
else { Response.Write("<script LANGUAGE='JavaScript' >alert('sorry try again')</script>"); } 

conn1.Close(); 

ответ

9

Поскольку вы выполняете свой SqlCommand дважды.

Один с

cmd3.ExecuteNonQuery(); 

И другой находится с;

if (cmd3.ExecuteNonQuery() == 1) 

От MSDN;

Исполняет в Transact-SQL заявление против соединения и возвращает количество затронутых строк.

И, пожалуйста, всегда используйте parameterized queries. Этот тип конкатенаций строк открыт для атак SQL Injection.

Также используйте заявление using, чтобы распорядиться своим SqlConnection;

using(SqlConnection conn1 = new SqlConnection("Data Source=ZAZIKHAN\\SQLEXPRESS;Initial Catalog=resume;Integrated Security=True")) 
{ 
    //Write here your command with parameterized way.. 
    conn1.Open(); 
    if (cmd3.ExecuteNonQuery() == 1) 
    { 
     //.... 
    } 
} 
+3

да это один правильный –

+0

спасибо много рабочих хорошо сейчас – Vicky

+1

@ Vicky Вы очень приветствуете ';)' –

2

Удалите первый cmd3.ExecuteNonQuery();, и он будет работать нормально

1

, если вы хотите, чтобы получить логический результат, perfom это один:

bool result = Convert.ToBoolean(cmd3.ExecuteNonQuery()); 
    if(result) 
    { 
     //Rest of function 
    } 
Смежные вопросы