私はしばらくの間、この基本的なフォームに取り組んできましたが、最新のつまずきにぶつかりました。テキスト ボックスに ID を入力し、[ロード] ボタンをクリックして.jpg
これを選択すると、上部の画像ボックスに画像が表示されます (この例ではカムコーダー)。
問題は、Save
ボタンをクリックすると、という名前のメソッドが呼び出されることです。updatedata();
これは、イメージと ID を SQL Server CE データベースに書き込んでいると思います (bin\debug フォルダーで数回実行しましたが、db のサイズが大きくなりました)。このメソッドは、次の名前の別のメソッドも呼び出します。Connection();
さて、接続方法の考え方は、データベースに保存されたアイテムに基づいて ID コンボボックスを設定することです。そのため、基本的に新しい画像を追加するたびに、ピックリストが更新され、選択できるようになりますが、現在はそうではありません私が使用したコードは、CE ではなく、SQL Server の適切なインスタンス用に最初に作成されたためです。一部をリファクタリングしようとしましたが、現在、以下のエラーが発生しています。
私の接続方法のコードは次のとおりです。
private void Connection()
{
//connect to the database and table
//selecting all the columns
//adding the name column alone to the combobox
try
{
string connstr = @"Data Source=.\TestImage.sdf;Persist Security Info=False;";
SqlCeConnection conn = new SqlCeConnection(connstr);
conn.Open();
empadap1 = new SqlDataAdapter();
empadap1.SelectCommand = new SqlCommand("SELECT * FROM test_table"
, conn);
dset = new DataSet("dset");
empadap1.Fill(dset);
DataTable dtable;
dtable = dset.Tables[0];
comboBox1.Items.Clear();
foreach (DataRow drow in dtable.Rows)
{
comboBox1.Items.Add(drow[0].ToString());
comboBox1.SelectedIndex = 0;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
質問
Connection() メソッド コードを修正して、希望どおりにする (つまり、SQL Server CE データベース内に保存されているすべての ID でコンボボックスを更新する) か、新しいコードを提案してください。
サイドノート
コンボボックスにデータが入力されたら、選択した ID に基づいて「取得」ボタンをコーディングしようとします。これにより、選択した画像が最初の画像ボックスの下の 2 番目の画像ボックスに表示されますが、別の画像ボックスに保存するのが最善だと思います。問題!