将 nvarchar 值 'meetingId' 转换为数据类型 int 时转换失败
Conversion failed when converting the nvarchar value 'meetingId' to data type int
我有一个下拉列表,我正在尝试将 DataValueField
插入数据库 table。 DataValueField
是从数据库中检索的,列的数据类型是 INT
。但是,当 运行 查询时,我收到此错误消息
Conversion failed when converting the nvarchar value 'meetingId' to data type int.
代码:
if (MinuteUpload.HasFile)
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string updateSql = "UPDATE Project_Meeting SET meetingMinute = @meetingMinute WHERE meetingId = @MeetingId"; ;
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(updateSql, myConnection);
myCommand.Parameters.AddWithValue("@meetingMinute", "postUpload/" + filename);
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
myCommand.ExecuteNonQuery();
myConnection.Close();
}
}
然而,当我尝试
Convert.ToIint.TryParse16(MinuteDropDown.DataValueField.Trim())
我收到这个错误:
Input string was not in a correct format.
你的线路:
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
有两点不对。首先,DataValueField
表示 属性 的名称,而不是 属性 的值。 SelectedValue
就是你想要的。
但是一旦您进行了更改,SelectedValue
仍然是一个字符串。在添加参数之前,您应该提前将其解析为 int
:
int meetingId = int.Parse(MinuteDropDown.SelectedValue);
myCommand.Parameters.AddWithValue("@MeetingId", meetingId);
您需要指定参数的类型。假设您的 meetingId 字段是 int 类型:
// replace this line
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
// with
myCommand.Parameters.Add("@MeetingId", SqlDbType.Int);
myCommand.Parameters("@MeetingId").Value = MinuteDropDown.DataValueField;
我有一个下拉列表,我正在尝试将 DataValueField
插入数据库 table。 DataValueField
是从数据库中检索的,列的数据类型是 INT
。但是,当 运行 查询时,我收到此错误消息
Conversion failed when converting the nvarchar value 'meetingId' to data type int.
代码:
if (MinuteUpload.HasFile)
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string updateSql = "UPDATE Project_Meeting SET meetingMinute = @meetingMinute WHERE meetingId = @MeetingId"; ;
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(updateSql, myConnection);
myCommand.Parameters.AddWithValue("@meetingMinute", "postUpload/" + filename);
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
myCommand.ExecuteNonQuery();
myConnection.Close();
}
}
然而,当我尝试
Convert.ToIint.TryParse16(MinuteDropDown.DataValueField.Trim())
我收到这个错误:
Input string was not in a correct format.
你的线路:
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
有两点不对。首先,DataValueField
表示 属性 的名称,而不是 属性 的值。 SelectedValue
就是你想要的。
但是一旦您进行了更改,SelectedValue
仍然是一个字符串。在添加参数之前,您应该提前将其解析为 int
:
int meetingId = int.Parse(MinuteDropDown.SelectedValue);
myCommand.Parameters.AddWithValue("@MeetingId", meetingId);
您需要指定参数的类型。假设您的 meetingId 字段是 int 类型:
// replace this line
myCommand.Parameters.AddWithValue("@MeetingId", MinuteDropDown.DataValueField);
// with
myCommand.Parameters.Add("@MeetingId", SqlDbType.Int);
myCommand.Parameters("@MeetingId").Value = MinuteDropDown.DataValueField;