前提・実現したいこと
データベースにdateカラムのデータを呼び出したときに、その日付のデータをリストボックス(カレンダー)に出力させたい。
発生している問題・エラーメッセージ
リストボックス1ではなく、3/17などの名前をリストボックスにつけられるのでしょうか? もしくは、dateカラムのデータをintに変換などをして各リストボックスに振り分けることはできるのでしょうか?
該当のソースコード
C#
1 private void button1_Click(object sender, EventArgs e) 2 { 3 var date = new DateTime(); 4 5 cn.ConnectionString = cnstr; 6 cn.Open(); 7 8 cmd.Connection = cn; 9 cmd.CommandType = CommandType.Text; 10 cmd.CommandText = "SELECT * FROM [dbo] . [Table]"; 11 12 rd = cmd.ExecuteReader(); 13 while (rd.Read()) 14 { 15 16 17 name = Convert.ToString(rd["名前"]); 18 date = Convert.ToDateTime(rd["日付"]); 19 20 21 listBox2.Items.Add(name); 22 listBox3.Items.Add(date); 23 24 25 26 27 } 28 rd.Close(); 29 cn.Close(); 30 } 31 32//追記させていただきました。 33using System; 34using System.Collections.Generic; 35using System.ComponentModel; 36using System.Data; 37using System.Drawing; 38using System.Linq; 39using System.Text; 40using System.Threading.Tasks; 41using System.Windows.Forms; 42using System.Data.SqlClient; 43 44namespace WindowsFormsApp4 45{ 46 public partial class Form1 : Form 47 { 48 private SqlConnection cn = new SqlConnection(); 49 private SqlCommand cmd = new SqlCommand(); 50 private SqlDataReader rd; 51 private String cnstr = @"Data Source=(LocalDB)\MSSQLLocalDB;" + @"AttachDbFilename=|DataDirectory|\Schedule2.mdf;" + "Integrated Security = True; Connect Timeout = 30"; 52 private string name = ""; 53 private DateTime date = new DateTime(2000, 1, 1); 54 private string task = ""; 55 56 readonly List<ListBox> listBoxs; 57 58 public Form1() 59 { 60 InitializeComponent(); 61 62 listBoxs = new List<ListBox> 63 { 64 null, 65 listBox1, 66 listBox2, 67 listBox3, 68 listBox4, 69 listBox5, 70 listBox6, 71 listBox7, 72 listBox8, 73 listBox9, 74 listBox10, 75 listBox11, 76 listBox12, 77 listBox13, 78 listBox14 79 }; 80 } 81 82 private void button1_Click(object sender, EventArgs e) 83 { 84 85 cn.ConnectionString = cnstr; 86 cn.Open(); 87 88 cmd.Connection = cn; 89 cmd.CommandType = CommandType.Text; 90 cmd.CommandText = "SELECT * FROM [dbo] . [Table]"; 91 92 rd = cmd.ExecuteReader(); 93 while (rd.Read()) 94 { 95 name = Convert.ToString(rd["名前"]); 96 date = Convert.ToDateTime(rd["日付"]); 97 task = Convert.ToString(rd["タスクネーム"]); 98 99 if (name == "A") 100 { 101 var listBox = listBoxs[ListBoxItems]; 102 //listBox.Items.Add = task; 103 } 104 105 } 106 rd.Close(); 107 cn.Close(); 108 } 109 110 private int ListBoxItems 111 { 112 113 get 114 { 115 //if (date ==3,1 ) return 1; 116 117 return 0; 118 } 119 } 120 } 121}
試したこと
dateカラムデータを変数に代入できたので計算できればと思ったのですが計算方法がうまくいきませんでした。
リストボックスにdate形式の名前をつけることはできるのでしょうか。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2019
Version 16.5.0
.NET Framework version 4.8.03752
あなたの回答
tips
プレビュー