Visual Sutaudio2017を使ってADO.NETによるデータベース(SQLServer)プログラミングでWindowsFormを作っています。
CREATE TABLE [dbo].[IMAGE] ( [ImageID] INT IDENTITY (1, 1) NOT NULL, [Photoname] NVARCHAR (50) NULL, [Genre] INT NULL, CONSTRAINT [NUM2] PRIMARY KEY CLUSTERED ([ImageID] ASC), CONSTRAINT [NUM3] FOREIGN KEY ([Genre]) REFERENCES [dbo].[GENRE] ([GenreID]) ); CREATE TABLE [dbo].[GENRE] ( [GenreID] INT IDENTITY (1, 1) NOT NULL, [Genre] NVARCHAR (50) NULL, CONSTRAINT [NUM1] PRIMARY KEY CLUSTERED ([GenreID] ASC) );
というテーブルを作りました。
IMAGEテーブルのPhotonameとGENREテーブルのGrnreにINSERTした後GenreにGENREテーブルのGenreIDをSELECTで取得したのをINSERTしたく
private void button2_Click(object sender, EventArgs e) { cn.ConnectionString= @"・・・"; cn.Open(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = "INSERT INTO [dbo].[IMAGE] (Photoname) VALUES("+ "N'" + textBox3.Text + "')" + //PhotonameをIMAGEテーブルに格納 "INSERT INTO [dbo].[GENRE] (Genre) VALUES (" + "N'" + textBox1.Text + "')" +//GenreをGENREテーブルに格納 ("INSERT INTO[dbo].[IMAGE](Genre)" + "SELECT GenreID FROM[dbo].[GENRE] " + "WHERE Genre Like N'% "+ textBox1.Text + "%'"); //GenreIDをIMAGEテーブルに格納 rd = cmd.ExecuteReader(); rd.Close(); cn.Close(); }
とし
private SqlConnection cn = new SqlConnection(); private SqlCommand cmd = new SqlCommand(); private SqlDataReader rd; private string cnstr = @"・・・"; private void button4_Click(object sender, EventArgs e) { cn.ConnectionString = cnstr; cn.Open(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT * FROM [dbo].[IMAGE] "; rd = cmd.ExecuteReader(); while (rd.Read()) listBox1.Items.Add( String.Format("[ImageID]{0}[Photoname]{1,-10}[Genre]{2,-10}", rd["ImageID"],rd["Photoname"], rd["Genre"])); rd.Close(); cn.Close(); }
で表示させました。
IMAGEテーブルのPhotonameにデータは格納できましたがGenreにデータが格納できません。
エラーコードが表示されないのでどこが間違っているかわからないので教えてください。
制作物
Windows Form
検索
どこが間違っているのか分からなかったので検索はしていません。
開発環境
Visual Sutaudio2017,.NET Framework4.7,SQL Server Express2017,Windows10
回答2件
あなたの回答
tips
プレビュー