質問
Visual Sutaudio2017を使ってADO.NETによるデータベース(SQLServer)プログラミングでWindowsFormを作っています。
private void button18_Click(object sender, EventArgs e) { // ListViewの下準備 int width = 100; int height = 80; imageList1.ImageSize = new Size(width, height); listView1.LargeImageList = imageList1; imageList1.Images.Clear(); listView1.Items.Clear(); // 検索 var query = "select Photoname,Photo from[dbo].[IMAGE]" + "where ImageID in (select ImageID from[dbo].[IMAGEPAGE]" + "where BookID in (select BookID from[dbo].[BOOK]" + "where Title = @Title ))"; var command = new SqlCommand(query, conn); MessageBox.Show(comboBox4.Text + "で画像を検索しました。"); command.Parameters.Add(new SqlParameter("@Title", comboBox4.Text)); var dt = new DataTable(); var adapter = new SqlDataAdapter(command); adapter.Fill(dt); comboBox4.Text = ""; // PhotoをImageオブジェクトにしてサムネイル用にサイズ調整し、 // Titkeと一緒にListViewへ追加 foreach (var row in dt.AsEnumerable()) { var Photoname = row["Photoname"].ToString(); var ms = new MemoryStream((byte[])row["Photo"]); var original = Image.FromStream(ms); var thumbnail = createThumbnail(original, width, height); imageList1.Images.Add(thumbnail); listView1.Items.Add(Photoname, dt.Rows.IndexOf(row)); original.Dispose(); thumbnail.Dispose(); } Image createThumbnail(Image image, int w, int h) { Bitmap canvas = new Bitmap(w, h); Graphics g = Graphics.FromImage(canvas); g.FillRectangle(new SolidBrush(Color.White), 0, 0, w, h); float fw = (float)w / (float)image.Width; float fh = (float)h / (float)image.Height; float scale = Math.Min(fw, fh); fw = image.Width * scale; fh = image.Height * scale; g.DrawImage(image, (w - fw) / 2, (h - fh) / 2, fw, fh); g.Dispose(); return canvas; } comboBox4.Text = ""; }
で画像を出力しています。
var query = "select Photoname,Photo from[dbo].[IMAGE]" + "where ImageID in (select ImageID from[dbo].[IMAGEPAGE]" + "where BookID in (select BookID from[dbo].[BOOK]" + "where Title = @Title ))";
の部分を
ver query ="select Photoname,Photo from [dbo][IMAGE]" + "where ImageID in(select ImageID from [dbo].[IMAGEPAGE]" + "where PageID = '" + comboBox1.Text + " '" + "and BookID = A)";
にし変数Aに
"select BookID from[dbo].[BOOK]" + "where Title = @Title "
の結果を代入したいです。
しかしAにselectの結果を代入するやり方とどこにプログラムを書けばよいかわかりません。
なので教えてほしいです。
開発環境
Visual Sutaudio2017,.NET Framework4.7,SQL Server Express2017,Windows10
検索
ADO.NET 変数 select 結果 代入 、SQL Server 変数を使ってselectをするで検索しました。しかしよいサイトが見つかりませんでした。
制作物
windows form
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/17 03:14
2020/01/17 04:19
2020/01/17 04:34
2020/01/18 13:21