私は自分のオフィス用にいくつかの winforms アプリケーションを開発しています。私のアプリケーションには、MySQL データベースに接続してデータを取得するコンボボックスが 50 個以上あります。すべてのコンボボックスは、特定の MySQL データベース列からデータを取得する必要があります。とにかく、以下のコードを使用して接続を確立し、データをコンボボックスに取得しました。
しかし今、私は非常に奇妙な問題を抱えています。私のMySQLデータベースには多くのnull値があります(一部の列には30行が含まれていますが、一部の列には1つまたは2つしか含まれていません)。データがコンボボックスを取得した後、最初のコンボボックス (2 番目の列に関連する) はデータを正しく表示しますが、2 番目の列から開始すると、1 行または 2 行しか表示されません。列の他のすべての値は表示されません。私はいくつかのフォーラムに行き、自分の al null 値を空の文字列に設定しました。しかしその後、コンボボックスは最後のフィールドの後に空白のエントリのリストを表示します。
クエリの後に IS NOT NULL も試しましたが、これも機能しません:(
この状況を克服するには?空または null 値なしで、すべてのコンボボックスにデータを取得したいと考えています。.net フレームワーク 2.0 を使用しています
これは C# または SQL クエリでプログラムによって可能ですか、それともデータベース構造を変更する必要がありますか?
(MySQL の知識がありません。ワークベンチを使用してデータベースを作成します :( )
これは私の現在のコードです
void combobox()
{
string constring = string.Format("datasource='{0}';port='{1}';database='{2}';username=****************;password=************;Connect Timeout=180;Command Timeout=180", dbserverip.Text,curport.Text,currentdb.Text);
string Query = "select * from estifdb.customconditions ;";
MySqlConnection conn = new MySqlConnection(constring);
MySqlCommand cmd = new MySqlCommand(Query, conn);
MySqlDataReader myreader666;
try
{
conn.Open();
myreader666 = cmd.ExecuteReader();
while (myreader666.Read())
{
string sName = myreader666.GetString("someval1");
applicationcombobox.Items.Add(sName);
string sName2 = myreader666.GetString("someval2");
applicationcombobox2.Items.Add(sName2);
string sName3 = myreader666.GetString("someval3");
applicationcombobox3.Items.Add(sName3);
string sName4 = myreader666.GetString("someval4");
applicationcombobox4.Items.Add(sName4);
string sName5 = myreader666.GetString("someval5");
applicationcombobox5.Items.Add(sName5);
// and 50 left