私はSelectステートメントのContactとRetailTrainingUserLevelMapの2つのテーブルに参加しています。SqlDataReaderとLabelを使用しているときに「入力文字列が正しい形式ではありませんでした」
(両方における共通の列がRetailTrainingUserLevelIDの整数である)
SELECT Contact.IntranetUserName、Contact.CompanyName、RetailTrainingUserLevelMap.RetailTrainingUserLevel
接触
INNER FROM RetailTrainingUserLevelMap ON Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMapをJOIN .RetailTrainingUserLevelID
AND Contact.RetailTrainingUserLevelID = RetailTrainingUserLevelMap.RetailTrai ningUserLevelID
私はVisual Studioのクエリビルダ(テストクエリウィンドウ)を介してこのステートメントを実行し、 "IntranetUserName" に値を入力した場合、私が取得する(Contact.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 int型
RetailTrainingUserLevel VARCHAR(50)
感謝。
こんにちはスタンを行うだろう
、 "RetailTrainingUserLevelは" ヌル許可しないように設定されています。 私はあなたのコードの提案を試みましたが、まだエラーが発生しています: "入力文字列が正しい形式ではありませんでした。 userLevelLabel.Text + = reader ["RetailTrainingUserLevel"]。ToString(); なぜ問題があるのか混乱しています。テーブルにはvarcharに設定されている "RetailTrainingUserLevel"値が必要です。可能な値は、すべて私にとって文字列のように見えるManager、Supervisor、Principalです。他に何を試すかわからない私のJOIN文が正しく設定されていませんか?あなたが持っているかもしれない他のアイデアありがとう... – Doug