###前提・実現したいこと
visualstudioにて、簡単なフォームアプリを作っています。
今までjavaばかりやっていたので、C#でのデータベースとのやりとりでつまづいています。
###流れ
簡単なシフト管理システムです。
日付、勤務開始時間、勤務終了時間を入力すると自動的に実働時間が計算されDBに格納されます。
###発生している問題
タイトル通り、フォームに情報を正しく入力してもデータベースに入力されず、困っています。
フォームのCSファイルと、DBと直接やり取りをするCSファイルとでクラスファイルを分けているのですが、エラーらしいエラーが出ず、フォームから値を受け取るところ、DBに接続するところ、INSERTで更新するところ、どこで間違えているのかわかりません・・・
ドドド初心者なので基本的なところが間違っているかも・・・
###該当のソースコード
---ファイルA--- SqlConnection connection; SqlCommand command; DataTable dt; //DB接続 public void Con() { try { string stConnectionString = string.Empty; connection = new SqlConnection(); command = new SqlCommand(); dt = new DataTable(); stConnectionString += @"Data Source = (IPアドレス);"; stConnectionString += @"Initial Catalog = (DB名);"; stConnectionString += @"Integrated Security = SSID;"; System.Data.SqlClient.SqlConnection cSqlConnection = (new System.Data.SqlClient.SqlConnection(stConnectionString)); connection = new SqlConnection(stConnectionString); connection.Open(); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } } //DB更新(INSERT) public void Add(string date,string starttime,string endtime,string total,string addtime) { try { command = new SqlCommand(); string word = "'" + date + "','" + starttime + "','" + endtime + "','" +total + "','" + addtime + "','" + addtime + "'"; SqlTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted); command.CommandText = "INSERT INTO time_table (date,starttime,endtime,total,addtime,uptime) VALUES(" + word + ");"; command.Connection = connection; command.Transaction = transaction; command.ExecuteNonQuery(); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } } //DB切断 public void Discon() { connection.Close(); } ---ファイルB--- //フォームから登録 private void inn_Click(object sender, EventArgs e) { A a = new A(); try { a.Con(); string date = dateTimePicker1.Value.ToString("yyyy/MM/dd"); string shour = comboBox1.SelectedItem.ToString(); string smin = comboBox2.SelectedItem.ToString(); string ehour = comboBox3.SelectedItem.ToString(); string emin = comboBox4.SelectedItem.ToString(); string stime = shour + smin; //時、分の結合 string etime = ehour + emin; int s = int.Parse(stime); //int変換 int f = int.Parse(etime); if (s > f) { //開始時間>終了時間の場合 エラー表示をし登録させない MessageBox.Show("正しい値を入力してください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { stime = shour + ":" + smin; //コロンを入れ時間のフォーマットにする etime = ehour + ":" + emin; shour = date + " " + stime; ehour = date + " " + etime; DateTime startt, endt; startt = DateTime.Parse(stime); //DateTime型に変換 endt = DateTime.Parse(etime); TimeSpan subt = endt - startt; //実働時間の計算 String total = subt.ToString(); String time = DateTime.Now.ToString(); //登録時間の取得 d.Add(date, stime, etime, total, time); MessageBox.Show("登録完了", "ダイアログ", MessageBoxButtons.OK); } }catch(NullReferenceException ex) { Console.WriteLine(ex.Message); MessageBox.Show("未入力項目があります。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { d.Discon(); } }
###補足情報(言語/FW/ツール等のバージョンなど)
visualstudio
windowsフォームアプリケーション(.NET FW)VISUAL C

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。