我创建了一个功能,用于执行我的数据错误`您必须声明标量变量“@ ....”'
Public Function Excuter(ByVal Query As String)
If cn.State = ConnectionState.Open Then cn.Close()
cn.Open()
Try
cmd.CommandText = (Query)
cmd.ExecuteNonQuery()
cn.Close()
Catch ex As Exception
cn.Close()
MsgBox(ex.ToString())
End Try
End Function
,这是我的插入代码
Excuter("INSERT INTO Table_PatientDetail (Patient_ID , Patient_Name , Age,Sex , Phone_Number , Address, Check_In_ID, Check_Out_ID , Service , Transfer , Patient_Result) VALUES (@Patient_ID , @Patient_Name , @Age, @Sex , @Phone_Number , @Address, @Check_In_ID , @Check_Out_ID , @Service , @Transfer , @Patient_Result)")
cmd.Parameters.AddWithValue("@Patient_ID", .PatientIDPatientInformation.Text)
cmd.Parameters.AddWithValue("@Patient_Name", .PatientNamePatientInformation.Text)
cmd.Parameters.AddWithValue("@Age", .AgePatientInformation.Text)
cmd.Parameters.AddWithValue("@Sex", .ComboBox1.Text)
cmd.Parameters.AddWithValue("@Phone_Number", .PhoneNumPatientInformation.Text)
cmd.Parameters.AddWithValue("@Address", .AddressPatientInformation.Text)
cmd.Parameters.AddWithValue("@Check_In_ID", .CIID.Text)
cmd.Parameters.AddWithValue("@Check_Out_ID", .COID.Text)
cmd.Parameters.AddWithValue("@Service", .Cboservice.SelectedValue)
cmd.Parameters.AddWithValue("@Transfer", .TransferPatientInformation.Text)
cmd.Parameters.AddWithValue("@Patient_Result", .ComboBox3.Text)
当我测试它,它显示此错误Must Declare Scalar Variable"@Patient_Name"
;我不明白。
你认为这个错误的含义是什么?你熟悉sql服务器还是任何编程语言变量? –
你是否在调用'Executer'之后设置Param值**?在片段中看起来如此。 – Plutonix
所以你有一个全局变量来执行叫做cmd的命令。 (而且这足以让我发抖),但是你可以调用Excuter方法,在设置参数集之前传递一个填充参数的字符串。不要惊讶,如果sqlserver大吼你。 – Steve