当包含Convert.ToInt32(cmd.ExecuteScalar())时,我得到一个关于将nvarchar转换为整数的错误
然而-我这样做的值被声明为INT,在我的存储过程中用作INT,并且在数据库中是一个INT。我不知道nvarchar是从哪里来的
Protected Sub btnCreateAudition_Click(sender As Object, e As EventArgs) Handles btnCreateAudition.Click
Protected Sub btnCreateAudition_Click(sender As Object, e As EventArgs) Handles btnCreateAudition.Click
Dim audition_ID As Integer = 0
Dim audition_Status As Integer = 0
Dim ins_ID As Integer = DropDownList1.SelectedValue
Dim ins_name As String = GetIns_Name(DropDownList1.SelectedValue)
Dim judge1 As Integer = DropDownList2.SelectedValue
Dim judge2 As Integer = DropDownList3.SelectedValue
Dim judge3 As Integer = DropDownList4.SelectedValue
Dim judge4 As Integer = DropDownList5.SelectedValue
Dim judge5 As Integer = DropDownList6.SelectedValue
Dim judgename1 As String = DropDownList2.SelectedValue
Dim judgename2 As String = DropDownList3.SelectedValue
Dim judgename3 As String = DropDownList4.SelectedValue
Dim judgename4 As String = DropDownList5.SelectedValue
Dim judgename5 As String = DropDownList6.SelectedValue
Dim auditionIDTest As Integer = 100001
Using con As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\BandDatabase.mdf;Integrated Security=True")
Using cmd As New SqlCommand("Create_Audition")
Using sda As New SqlClient.SqlDataAdapter()
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@audition_date", Calendar1.SelectedDate)
cmd.Parameters.AddWithValue("@audition_location", txtauditionlocation.Text)
cmd.Parameters.AddWithValue("@audition_status", audition_Status)
cmd.Parameters.AddWithValue("@instrument_name", ins_name)
cmd.Parameters.AddWithValue("@ins_ID", ins_id)
cmd.Parameters.AddWithValue("@judge1", judge1)
cmd.Parameters.AddWithValue("@judge2", judge2)
cmd.Parameters.AddWithValue("@judge3", judge3)
cmd.Parameters.AddWithValue("@judge4", judge4)
cmd.Parameters.AddWithValue("@judge5", judge5)
cmd.Parameters.AddWithValue("@judgename1", judgename1)
cmd.Parameters.AddWithValue("@judgename2", judgename2)
cmd.Parameters.AddWithValue("@judgename3", judgename3)
cmd.Parameters.AddWithValue("@judgename4", judgename4)
cmd.Parameters.AddWithValue("@judgename5", judgename5)
cmd.Parameters.AddWithValue("@audition_IDTest", auditionIDTest)
cmd.Connection = con
con.Open()
'No error if below line is commented out, but DB isn't updated
audition_ID = Convert.ToInt32(cmd.ExecuteScalar())
con.Close()
End Using
End Using
End Using
End Sub存储过程是...
CREATE PROCEDURE [dbo].[Create_Audition]
@audition_date DATE,
@audition_status INT,
@audition_location NVARCHAR,
@ins_ID INT,
@instrument_name INT,
@judge1 INT,
@judge2 INT,
@judge3 INT,
@judge4 INT,
@judge5 INT,
@judgename1 NVARCHAR,
@judgename2 NVARCHAR,
@judgename3 NVARCHAR,
@judgename4 NVARCHAR,
@judgename5 NVARCHAR,
@audition_IDTest INT
AS
BEGIN
INSERT INTO [Audition]
([audition_date]
,[ins_ID]
,[insturment_name]
,[audition_location]
,[audition_status])
VALUES
(@audition_date
,@ins_ID
,@instrument_name
,@audition_location
,@audition_status)
SELECT SCOPE_IDENTITY() -- Audition_ID
END
BEGIN
INSERT INTO [Judge_Audition]
([UserID]
,[judge_username]
,[audition_ID]
)
VALUES
(@judge1,
@judgename1,
@audition_IDTest
)
SELECT SCOPE_IDENTITY() -- J_ID
END
BEGIN
INSERT INTO [Judge_Audition]
([UserID]
,[judge_username]
,[audition_ID]
)
VALUES
(@judge2,
@judgename2,
@audition_IDTest
)
SELECT SCOPE_IDENTITY() -- J_ID
END
BEGIN
INSERT INTO [Judge_Audition]
([UserID]
,[judge_username]
,[audition_ID]
)
VALUES
(@judge3,
@judgename3,
@audition_IDTest
)
SELECT SCOPE_IDENTITY() -- J_ID
END
BEGIN
INSERT INTO [Judge_Audition]
([UserID]
,[judge_username]
,[audition_ID]
)
VALUES
(@judge4,
@judgename4,
@audition_IDTest
)
SELECT SCOPE_IDENTITY() -- J_ID
END
BEGIN
INSERT INTO [Judge_Audition]
([UserID]
,[judge_username]
,[audition_ID]
)
VALUES
(@judge5,
@judgename5,
@audition_IDTest
)
SELECT SCOPE_IDENTITY() -- J_ID
END它可能在哪里将audition_ID指定为nvarchar类型?
https://stackoverflow.com/questions/47503020
复制相似问题