【发布时间】:2020-06-25 13:01:23
【问题描述】:
如何解决这些错误?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Adatbázis_kezelés
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Szabolcs\Documents\Test.mdf;Integrated Security=True;Connect Timeout=30");
private void button1_Click(object sender, EventArgs e)
{
con.Open();
String query = "insert into Table (id,Name,Fname,Age,Gender,Addres) VALUES('"+textBox1.Text+ "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + comboBox1.Text + "','" + textBox5.Text + "')";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
SDA.SelectCommand.ExecuteNonQuery();
con.Close();
MessageBox.Show("INSTERTION SUCCESSFULLY !!!");
}
}
}
【问题讨论】:
-
您没有发布图片。最好将错误消息以文本形式发布(以便可搜索)。
-
您的代码对SQL injections开放。例如,如果您的
id列是数字,那么第一个参数周围的单引号是错误的。 -
错误消息是文本,为了将来参考,习惯上将消息作为文本放在问题中。至于错误,您的 sql 中有一个语法错误,这在您通过连接字符串构建 sql 时很常见。使用参数不仅可以防止 sql 注入,还有助于避免语法错误。
-
转义
table:insert into [Table] ...