使用 C# 将数据插入 SQL
Insert data to SQL using C#
我一直遇到这个问题
"An unhandled exception of type 'System.Data.SqlClient.SqlException'
occurred in System.Data.dll" "on
SDA.SelectCommand.ExecuteNonQuery();".
这里有什么问题?
SqlConnection con = new SqlConnection(@"Data Source=LAPTOP-LD5OK96E\SQLEXPRESS;Initial Catalog=TRANSACTION_RATE TABLE; Integrated Security=True");
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
con.Open();
String query = "INSERT INTO TRANSACTION_RATE TABLE (Trans_id,Transaction_type,Transact_rate,Transact_description) VALUES('" + textBox1.Text + "','" + textBox2.Text + "''" + textBox3.Text + "''" + textBox4.Text + "')";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
SDA.SelectCommand.ExecuteNonQuery();
con.Close();
MessageBox.Show("Success!");
您的 table 名字后有一个杂散的 TABLE
关键字,您需要将其删除。作为第二个注意事项,您需要注意这种字符串连接是可以避免的,并且容易受到 SQL Injection 攻击:
String query = "INSERT INTO TRANSACTION_RATE (Trans_id,Transaction_type,Transact_rate,Transact_description) VALUES (@Trans_id, @Transaction_type,@Transact_rate, @Transact_description)";
SDA.SelectCommand.Parameters.Add("@Trans_id", SqlDbType.NVarChar, 50).Value = textBox1.Text;
SDA.SelectCommand.Parameters.Add("@Transaction_type", SqlDbType.NVarChar, 50).Value = textBox2.Text;
SDA.SelectCommand.Parameters.Add("@Transact_rate", SqlDbType.NVarChar, 50).Value = textBox3.Text;
SDA.SelectCommand.Parameters.Add("@Transact_description", SqlDbType.NVarChar, 50).Value = textBox4.Text;
如果你的 table 实际上被命名为 TRANSACTION_RATE TABLE
你应该像这样转义这个名字:
INSERT INTO [TRANSACTION_RATE TABLE] ....
我一直遇到这个问题
"An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll" "on SDA.SelectCommand.ExecuteNonQuery();".
这里有什么问题?
SqlConnection con = new SqlConnection(@"Data Source=LAPTOP-LD5OK96E\SQLEXPRESS;Initial Catalog=TRANSACTION_RATE TABLE; Integrated Security=True");
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
con.Open();
String query = "INSERT INTO TRANSACTION_RATE TABLE (Trans_id,Transaction_type,Transact_rate,Transact_description) VALUES('" + textBox1.Text + "','" + textBox2.Text + "''" + textBox3.Text + "''" + textBox4.Text + "')";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
SDA.SelectCommand.ExecuteNonQuery();
con.Close();
MessageBox.Show("Success!");
您的 table 名字后有一个杂散的 TABLE
关键字,您需要将其删除。作为第二个注意事项,您需要注意这种字符串连接是可以避免的,并且容易受到 SQL Injection 攻击:
String query = "INSERT INTO TRANSACTION_RATE (Trans_id,Transaction_type,Transact_rate,Transact_description) VALUES (@Trans_id, @Transaction_type,@Transact_rate, @Transact_description)";
SDA.SelectCommand.Parameters.Add("@Trans_id", SqlDbType.NVarChar, 50).Value = textBox1.Text;
SDA.SelectCommand.Parameters.Add("@Transaction_type", SqlDbType.NVarChar, 50).Value = textBox2.Text;
SDA.SelectCommand.Parameters.Add("@Transact_rate", SqlDbType.NVarChar, 50).Value = textBox3.Text;
SDA.SelectCommand.Parameters.Add("@Transact_description", SqlDbType.NVarChar, 50).Value = textBox4.Text;
如果你的 table 实际上被命名为 TRANSACTION_RATE TABLE
你应该像这样转义这个名字:
INSERT INTO [TRANSACTION_RATE TABLE] ....