Select 문의 Contact 및 RetailTrainingUserLevelMap 두 테이블을 조인하고 있습니다. SqlDataReader 및 레이블을 사용할 때 "입력 문자열의 형식이 올바르지 않습니다."
는INNER JOIN RetailTrainingUserLevelMap ON Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap SELECT Contact.IntranetUserName, Contact.CompanyName, RetailTrainingUserLevelMap.RetailTrainingUserLevel
연락
FROM(모두 공통 열은 RetailTrainingUserLevelID의 INT이다) . 리테일 트레이닝 사용자 레벨 ID
및 연락처. RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrai ningUserLevelID
WHERE (Contact.IntranetUserName = @IntranetUserName)
내가 비주얼 스튜디오 쿼리 빌더 (테스트 쿼리 창)을 통해이 문을 실행하고 "IntranetUserName"에 대한 값을 입력하면 내가 얻을 :
IntranetUserName :
존 조
회사 명 :
한국 전기 주식
RetailTrainingUserLevel :
관리자
이 내 원하는 출력은, 지금까지 너무 좋다.
이 같은이 컬럼의 일부에 레이블을 결합하기 위해 SqlDataReader 개체를 사용하여 코드 숨김 내 .cs이 같은 SELECT 문을 사용하는 경우 :
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이
RetailTrainingUserLevel의 VARCHAR 시간과 지식 (50)
감사를 int로.
안녕 스탠은 "RetailTrainingUserLevel은"널 (null) 허용하지 설정되어 할 것입니다. 코드 제안을 시도했지만 "입력 문자열의 형식이 올바르지 않습니다."라는 오류가 계속 발생합니다. userLevelLabel.Text + = reader [ "RetailTrainingUserLevel"]. ToString(); 왜 문제가 있는지 혼란 스럽습니다. 리더는 테이블에있는 varchar로 설정된 "RetailTrainingUserLevel"값을 원합니다. 가능한 값은 관리자, 수퍼바이저, 프린시 펄이며 모든 문자열은 나처럼 보입니다. 그 밖의 무엇을 시도해야하는지 잘 모릅니다. 내 JOIN 문이 올바르게 설정되지 않았습니까? 다른 아이디어를 가져 주셔서 감사합니다 ... – Doug