我在数据类型的数据库中有一个 security_role_cd 列smallint
。我正在使用以下代码将此列选择到nullable int
变量中。
我收到以下错误:
错误 3 无法确定条件表达式的类型,因为 'null' 和 'short' 之间没有隐式转换
克服此错误的正确代码是什么?
SELECT R.security_role_cd FROM Security_Role R WHERE security_role_name = 'Admin'
C#
int? roleID = null;
string commandText = "SELECT R.security_role_cd FROM Security_Role R WHERE security_role_name = @roleName";
SqlCommand command = new SqlCommand(commandText, connection);
command.CommandType = System.Data.CommandType.Text;
command.Parameters.AddWithValue("@roleName",roleName);
SqlDataReader readerRole = command.ExecuteReader();
if (readerRole.HasRows)
{
while (readerRole.Read())
{
roleID = readerRole.GetInt16(0) == 0 ? null : readerRole.GetInt16(0) ;
}
}
readerRole.Close();