Я объединяю две таблицы - Contact и RetailTrainingUserLevelMap в операторе Select.
(общий столбец в обоих - это RetailTrainingUserLevelID int)
ВЫБРАТЬ Contact.IntranetUserName, Contact.CompanyName, RetailTrainingUserLevelMap.RetailTrainingUserLevel
ОТ КОНТАКТА
ВНУТРЕННЕЕ СОЕДИНЕНИЕ RetailTrainingUserLevelMap ON Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrainingUserLevelID
AND Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrainingUserLevelID
ГДЕ (Contact.IntranetUserName = @IntranetUserName)
Если я выполню этот оператор через Visual Studio Query Builder (окно тестового запроса) и введу значение для «IntranetUserName», я получу:
* +1018 * IntranetUserName:
Джон Джо
CompanyName:
Acme Inc.
RetailTrainingUserLevel:
Менеджер
Это мой желаемый вывод, пока все хорошо.
Если я использую этот же оператор выбора в моем коде .cs, используя SqlDataReader для привязки меток к некоторым из этих столбцов, например:
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 + = reader ["RetailTrainingUserLevel"];
Какой синтаксис C # необходимо изменить здесь, чтобы я мог правильно связать это значение с моим userLevelLabel?
Примечание:
RetailTrainingUserLevelID int
RetailTrainingUserLevel varchar (50)
Спасибо за ваше время и знания.