ASp.net - 向数据库添加新行

时间:2009-10-13 08:05:24

标签: asp.net

我已经在visual basic中编写了这段代码。执行时不会打印错误,但新行不会添加到数据库中。我也试过使用数据集,但也没有用。有什么想法吗?

Dim conSQL As SqlConnection = New SqlConnection
    conSQL.ConnectionString = "Data Source=USER-PC\SQLEXPRESS;Initial Catalog=Phd;Integrated Security=True"
    conSQL.Open()

    Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)

  cmd.ExecuteNonQuery()

3 个答案:

答案 0 :(得分:1)

执行插入只有两种可能的结果;要么添加记录,要么得到例外。所以你的案例中的替代方案是:

  1. 您显示的代码根本没有执行。
  2. 您正在捕捉异常并忽略它。
  3. 您拥有的实际代码与您发布的代码不同。
  4. 您已在数据库中创建了一个删除记录的触发器。
  5. 文本框中的一个值使用SQL注入来删除附加值*。
  6. *)如果您在ID文本框中输入值-1','','');delete Phd_Student where student_id='-1'--,则会添加记录然后将其删除。

答案 1 :(得分:0)

1-您应该在执行命令之前打开连接。

try
conSQL.open()
 Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)

  cmd.ExecuteNonQuery()
Finally
conSQL.close()
end try

2-你应该将参数传递给查询而不是这样,以避免SQL注入。

答案 2 :(得分:0)

首先,确保在cmd.ExecuteNonQuery()行之后调用conSQL.Close()。