WindowsFormを使用しています。
Form2で生徒の情報を登録し、
Form1で生徒の情報を検索します。
birthday・post_code・adressはNuLL許容としてSQLServerで設定しています。
C#(Form2)
1var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; 2 3 // データベース接続の準備 4 using (var connection = new SqlConnection(connectionString)) 5 using (var command = connection.CreateCommand()) 6 { 7 try 8 { 9 // データベースの接続開始 10 connection.Open(); 11 12 // SQLの準備 13 command.CommandText = "INSERT INTO MEMBER_MASTER (name1, name2, birthday, gender, post_code, adress, date_created, last_updated) VALUES" 14 + "(@name1, @name2, @birthday, @gender, @post_code, @adress, @date_created, @last_updated)"; 15 command.Parameters.Add(new SqlParameter("@name1", sei)); 16 command.Parameters.Add(new SqlParameter("@name2", mei)); 17 if (year == "" && month == "" && day == "") 18 { 19 command.Parameters.Add(new SqlParameter("@birthday", DBNull.Value)); 20 } 21 else 22 { 23 command.Parameters.Add(new SqlParameter("@birthday", DateTime.Parse(year + "/" + month + "/" + day))); 24 } 25 command.Parameters.Add(new SqlParameter("@gender", seibetu)); 26 if (yuubin1 == "" && yuubin2 == "") 27 { 28 command.Parameters.Add(new SqlParameter("@post_code", DBNull.Value)); 29 } 30 else 31 { 32 command.Parameters.Add(new SqlParameter("@post_code", yuubin1 + yuubin2)); 33 } 34 if (jyusyo == "") 35 { 36 command.Parameters.Add(new SqlParameter("@adress", DBNull.Value)); 37 } 38 else 39 { 40 command.Parameters.Add(new SqlParameter("@adress", jyusyo)); 41 } 42 43 // SQLの実行 44 command.ExecuteNonQuery(); 45 } 46 finally 47 { 48 // データベースの接続終了 49 connection.Close(); 50 } 51
Form2でbirthday・post_code・adressを空白のまま情報を登録し
Form1で情報を検索しようとすると
Form1の以下のコードで”ハンドルできませんでした”とエラーがでます。
C#(Form1)
1// SQLを実行し、dataGridViewに格納する 2 using (var reader = command.ExecuteReader()) 3 { 4 while (reader.Read() == true) 5 { 6 string post_code = reader["post_code"]as string; //"post_code"を変数に入れる 7 dataGridView1.Rows.Add(reader["id"], 8 (reader["name1"] as string) + " " + (reader["name2"] as string), 9 reader["birthday"], 10 Convert.ToInt32(reader["gender"]) == 1 ? "男性" : "女性", 11 post_code.Substring(0, 3) + "-" + post_code.Substring(3, 4), 12 reader["adress"] as string); 13 } 14
どうすれば回避できますか
回答2件
あなたの回答
tips
プレビュー