‘System.Data.SqlClient.SqlCommand’和’Integer’。
这是代码:
运用 CMDB </跨度> =新的SqlCommand(“INSERT INTO AdditionalDaisyCodes(AddCode)VALUES(@AddCode)”,con) con.Open() cmdb.ExecuteNonQuery锟() con.Close()
如果 CMDB </跨度> &GT; 1然后
MessageBox.Show(“重复代码存在!”,“Indigo Billing”,_ MessageBoxButtons.OK,MessageBoxIcon.Information)
其他 万一结束使用
任何人都可以帮助正确的语法吗? 锟斤拷
您遇到的问题不仅仅是语法错误。根据您发布的代码,您似乎想要通知用户存在重复的代码。既然你有 Else ,我打算猜一下,如果找不到重复的代码,你想要插入。
Else
目前受影响的行数 ExecuteNonQuery() 将 的 决不 强> 大于1.此外,在您发布的代码中,您永远不会为其分配值 @AddCode 参数 - 如果 AddCode column不能为null,这可能会导致错误。
ExecuteNonQuery()
@AddCode
AddCode
您可能想要做的是检查代码是否存在,如果不存在则添加它。像这样的东西可以做到这一点:
Using cmdb = New SqlCommand("SELECT * FROM AdditionalDaisyCodes WHERE AddCode = @AddCode", con) con.Open() cmdb.Parameters.AddWithValue("@AddCode", txtAddCode.Text) Dim reader As SqlDataReader = cmdb.ExecuteReader() If reader.HasRows Then MessageBox.Show("Duplicate Codes Exist!", "Indigo Billing", _ MessageBoxButtons.OK, MessageBoxIcon.Information) Else cmdb.CommandText = "INSERT INTO AdditionalDaisyCodes(AddCode) Values(@AddCode)" cmdb.Parameters.AddWithValue("@AddCode", txtAddCode.Text) cmdb.ExecuteNonQuery() End If con.Close() End Using
txtAddCode.Text 在上面的例子中假设代码来自a TextBox 命名 txtAddCode 。首先,它通过运行受WHERE子句约束的SELECT查询来检查代码是否已经在表中。如果退回 SqlDataReader 有行,然后该代码已经在表中,并显示消息框。
txtAddCode.Text
TextBox
txtAddCode
SqlDataReader
如果 SqlDataReader 没有行,那么代码不在表中 cmdb 被重用来插入。
cmdb
还要注意你可以把 SqlConnection 在一个 Using 阻止,也不需要打电话 Close() 明确地在连接上。
SqlConnection
Using
Close()
用这个
int result=cmdb.ExecuteNonQuery(); if result > 1 then //code here else end if