お世話になります。
情報管理画面を作成しているのですが、画像登録ではまってしまっています。
128行目のパラメータの部分で
CS0029 型 'System.Drawing.Image' を 'System.Data.DbType' に暗黙的に変換できません
上記のエラーが発生します。
画像やファイルを登録したことがなく、登録のしかたがいまいち理解できておりません。
ご教示のほどよろしくお願いいたします。
C#
1using System; 2using System.IO; 3using System.Collections.Generic; 4using System.ComponentModel; 5using System.Data; 6using System.Drawing; 7using System.Linq; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11using System.Data.SQLite; 12 13namespace 基幹システム.対人管理 14{ 15 16 public partial class Taizintouroku : Form 17 { 18 public Taizintouroku() 19 { 20 InitializeComponent(); 21 22 #region 対人コードを自動付番 23 DateTime CD = DateTime.Today.Date; 24 25 System.Random r = new System.Random(1000); 26 27 int i = r.Next(9); 28 29 string ran = i.ToString(); 30 string Day = CD.ToString(); 31 string DayCD = Day.Substring(0, 10); 32 33 string DayCD2 = DayCD.Replace('/',' '); 34 35 //char[] removeChars = new Char[] { '\r', '\n' }; 36 37 //foreach(char c in removeChars) 38 //{ 39 // DayCD = DayCD.Replace(c.ToString(), "/"); 40 //} 41 42 string KokyakuCd = ran + DayCD2; 43 44 txttaizincd.Text = KokyakuCd; 45 #endregion 46 47 txttaizincd.Enabled = false; 48 } 49 50 public void button1_Click(object sender, EventArgs e) 51 { 52 //ダイアログを開く 53 DialogResult dr = openFileDialog1.ShowDialog(); 54 55 pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); 56 //ファイルのアドレスを取得 57 var pic = openFileDialog1.FileName; 58 //バイト型に変更 59 byte[] gazou = File.ReadAllBytes(pic); 60 61 if (dr == DialogResult.OK) 62 { 63 //string filepass = dr.GetType.filepass; 64 65 } 66 // var a = picpic; 67 //return a; 68 } 69 70 private void btntouroku_Click(object sender, EventArgs e) 71 { 72 73 string dbpath = Application.StartupPath + @"\kabukanri.db"; 74 using (SQLiteConnection con = new SQLiteConnection("Data Source=" + dbpath)) 75 { 76 con.Open(); 77 DataTable datatable = new DataTable(); 78 79 using (SQLiteTransaction trans = con.BeginTransaction()) 80 { 81 //給料テーブルinsert用 82 StringBuilder sql = new StringBuilder(); 83 SQLiteCommand cmd = con.CreateCommand(); 84 85 #region 対人テーブル insert文 86 sql.AppendLine("insert "); 87 sql.AppendLine("into 対人テーブル( "); 88 sql.AppendLine(" CD"); 89 sql.AppendLine(" , 名前"); 90 sql.AppendLine(" , 生年月日"); 91 //sql.AppendLine(" , 年齢"); 92 sql.AppendLine(" , 郵便番号"); 93 sql.AppendLine(" , 住所"); 94 sql.AppendLine(" , 顔写真"); 95 sql.AppendLine(" , 性別"); 96 sql.AppendLine(" , 備考"); 97 sql.AppendLine(" , DEL_FLG"); 98 sql.AppendLine(") "); 99 sql.AppendLine("values ( "); 100 sql.AppendLine(" @CD"); 101 sql.AppendLine(" , @名前"); 102 sql.AppendLine(" , @生年月日"); 103 //sql.AppendLine(" , @年齢"); 104 sql.AppendLine(" , @郵便番号"); 105 sql.AppendLine(" , @住所"); 106 sql.AppendLine(" , @顔写真"); 107 sql.AppendLine(" , @性別"); 108 sql.AppendLine(" , @備考"); 109 sql.AppendLine(" , 0"); 110 sql.AppendLine(")"); 111 112 cmd.Parameters.Add("CD", System.Data.DbType.String); 113 cmd.Parameters.Add("名前", System.Data.DbType.String); 114 cmd.Parameters.Add("生年月日", System.Data.DbType.String); 115 cmd.Parameters.Add("年齢", System.Data.DbType.String); 116 cmd.Parameters.Add("郵便番号", System.Data.DbType.String); 117 cmd.Parameters.Add("住所", System.Data.DbType.String); 118 cmd.Parameters.Add("顔写真", System.Data.DbType.Binary); 119 cmd.Parameters.Add("性別", System.Data.DbType.String); 120 cmd.Parameters.Add("備考", System.Data.DbType.String); 121 122 cmd.Parameters["CD"].Value = txttaizincd.Text; 123 cmd.Parameters["名前"].Value = txtname.Text; 124 cmd.Parameters["生年月日"].Value = txtsenedate.Text; 125 //cmd.Parameters["年齢"].Value = txtage.Text; 126 cmd.Parameters["郵便番号"].Value = txtadd.Text; 127 cmd.Parameters["住所"].Value = txtzyusyo.Text; 128 cmd.Parameters["顔写真"].DbType =pictureBox1.Image; 129 if(radioButton1.Checked == true) 130 { 131 cmd.Parameters["性別"].Value = 1; 132 } 133 else if(radioButton2.Checked == true) 134 { 135 cmd.Parameters["性別"].Value = 2; 136 } 137 cmd.Parameters["備考"].Value = txtbiko.Text; 138 139 cmd.CommandText = sql.ToString(); 140 cmd.ExecuteNonQuery(); 141 trans.Commit(); 142 MessageBox.Show("登録が完了しました。"); 143 #endregion 144 } 145 } 146 } 147 148 private void txtage_Validating(object sender, CancelEventArgs e) 149 { 150 151 } 152 #region 年齢を出すメソッド 153 private static int GetAge(DateTime txtsenedate, DateTime today) { 154 int age = today.Year - txtsenedate.Year; 155 //誕生日がまだ来ていなければ、1引く 156 if (today.Month < txtsenedate.Month || 157 (today.Month == txtsenedate.Month && 158 today.Day < txtsenedate.Day)) 159 { 160 age--; 161 } 162 return age; 163 } 164 #endregion 165 166 private void txtsenedate_Validated(object sender, EventArgs e) 167 { 168 #region 年齢を自動計算 169 if (txtsenedate.TextLength < 10) 170 { 171 //seinenTip = new ToolTip(this.components); 172 seinenTip.SetToolTip(txtsenedate,"生年月日はYYYY/MM/DD形式で入力してください"); 173 return; 174 } 175 176 string i = txtsenedate.Text; 177 DateTime a = DateTime.Parse(i); 178 179 DateTime birthDate = a; 180 //現在の日付 181 DateTime today = DateTime.Today; 182 183 //年齢を計算する 184 int age = GetAge(birthDate, today); 185 186 int age2 = age; 187 txtage.Text = age2.ToString(); 188 189 } 190 #endregion 191 private void txtsenedate_TextChanged(object sender, EventArgs e) 192 { 193 194 } 195 196 private void button3_Click(object sender, EventArgs e) 197 { 198 199 } 200 } 201}
128行目と言われても行番号を振ってないと分からないのですが。(行番号を振ってほしいと言っているわけではありません。どの行かわかるようにしてほしいだけです)
回答2件
あなたの回答
tips
プレビュー