C# 使用SqlDataReader和Label时“输入字符串格式不正确”
我在Select语句中连接两个表——Contact和RetailTrainingUserLevelMap 两者中的公共列都是RetailTrainingUserLevelID int 选择Contact.IntranetUserName、Contact.CompanyName、RetailTrainingUserLevelMap.RetailTrainingUserLevel 从接触 联系人上的内部联接RetailTrainingUserLevelMap.RetailTrainingUserLevelID=RetailTrainingUserLevelMap.RetailTrainingUserLevelID 和Contact.RetailTrainingUserLevelID=RetailTrainingUserLevelMap.RetailTrainingUserLevelID 其中Contact.IntranetUserName=@IntranetUserName 如果我通过Visual Studio Query Builder在测试查询窗口中运行此语句,并为IntranetUserName输入一个值,我会得到: Intranet用户名: 约翰·乔 公司名称: Acme公司 RetailTrainingUserLevel: 经理 这是我想要的输出,到目前为止还不错 如果我在.cs codebehind中使用相同的select语句,使用SqlDataReader将标签绑定到以下列:C# 使用SqlDataReader和Label时“输入字符串格式不正确”,c#,label,inner-join,string-formatting,C#,Label,Inner Join,String Formatting,我在Select语句中连接两个表——Contact和RetailTrainingUserLevelMap 两者中的公共列都是RetailTrainingUserLevelID int 选择Contact.IntranetUserName、Contact.CompanyName、RetailTrainingUserLevelMap.RetailTrainingUserLevel 从接触 联系人上的内部联接RetailTrainingUserLevelMap.RetailTrainingUserLe
SqlCommand comm;
SqlConnection conn;
string intranetConnectionString = ConfigurationManager.ConnectionStrings["DataConnect"].ConnectionString;
conn = new SqlConnection(intranetConnectionString);
comm = new SqlCommand("SELECT Contact.IntranetUserName, Contact.CompanyName, RetailTrainingUserLevelMap.RetailTrainingUserLevel FROM Contact INNER JOIN RetailTrainingUserLevelMap ON Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrainingUserLevelID AND Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrainingUserLevelID WHERE (Contact.IntranetUserName = @IntranetUserName)", conn);
comm.Parameters.Add("@IntranetUserName", System.Data.SqlDbType.VarChar, 50);
comm.Parameters["@IntranetUserName"].Value = memberLoginName;
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
{
memberCompanyNameLabel.Text += reader["CompanyName"];
userLevelLabel.Text += reader["RetailTrainingUserLevel"];
}
reader.Close();
conn.Close();
我得到的错误是输入字符串的格式不正确。在这里:
userLevelLabel.Text+=读取器[RetailTrainingUserLevel]
这里需要更改什么样的C语法,以便将该值正确绑定到userLevelLabel
注:
RetailTrainingUserLevelID int
RetailTrainingUserLevel varchar 50
感谢您的时间和知识。您确定reader[RetailTrainingUserLevel]不是DBNull
在尝试将其添加到另一个字符串之前,可能需要执行。ToString
我会的
userLevelLabel.Text += reader["RetailTrainingUserLevel"].ToString();
您好,RetailTrainingUserLevel设置为不允许为空。我尝试了您的代码建议,但仍然得到错误:输入字符串的格式不正确。在userLevelLabel.Text+=reader[RetailTrainingUserLevel].ToString;我不明白为什么会有问题。读者需要一个RetailTrainingUserLevel值,该值在表中设置为varchar-可能的值是Manager、Supervisor、Principal,它们在我看来都像字符串。不知道还有什么可以尝试的。我的JOIN语句是否设置不正确?谢谢你的任何其他想法。。。