我做了程序,構建版本,並在我的電腦上工作很好,但是當我將它安裝在客戶端計算機上時,我得到了一些錯誤。我 最大的謎是這樣的代碼:兩臺電腦,相同的代碼,兩個結果(插入和更新)
if (!string.IsNullOrEmpty(textBox2.Text) && !string.IsNullOrEmpty(textBox6.Text))
{
string komanda = "";
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
string naziv = Convert.ToString(textBox2.Text);
string obim = Convert.ToString(textBox3.Text);
string format = Convert.ToString(textBox4.Text);
string isbn = Convert.ToString(textBox5.Text);
decimal cena = Convert.ToDecimal(textBox6.Text);
if (Izbor.Equals(1))
{
komanda = "INSERT INTO Izdanja (Naziv, Obim, Format, ISBN, Cena) VALUES (N'" + naziv + "','" + obim + "','" + format + "','" + isbn + "','" + cena + "')";
}
else if (Izbor.Equals(2))
{
komanda = "UPDATE Izdanja SET Naziv = N'" + naziv + "', Obim ='" + obim + "', Format ='" + format + "', ISBN ='" + isbn + "', Cena ='" + cena + "' WHERE ID='" + textBox1.Text + "'";
}
cmd.CommandText = komanda;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
ucitavanjeIzdanja();
Izbor = 0;
}
else
{
MessageBox.Show("Fields must be filled!!!", "Warning!!!");
}
和謎是這樣的:我的電腦上的一切工作,在客戶端計算機上插入工作,但更新不。錯誤是:將數據類型varchar轉換爲數字時出錯。這怎麼可能?如果連接字符串錯誤 - 插入不起作用,但是插入工作,更新不行。如果代碼出現錯誤,它是如何在我的電腦上工作的?相同的代碼...
也許你的電腦和客戶端的數據庫不同。 –
不,相同的數據庫,正確的連接字符串... :( – user2710931
你應該總是使用[參數化查詢](http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/ )。這種類型的字符串連接對於[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)攻擊是開放的。 –