1

データグリッドビューがあり、そのデータソースはMS Access(データ型、通貨、日付/時刻、および数値)です。データベース内のデータは表示されますが、他のデータ型は表示されません。単語または文字列のみが表示されます。行を追加するための私のコード

string[] rowData = new string[columnCount];
            while (dr.Read())
            {
                for (int k = 0; k < columnCount; k++)
                {
                    if (dr.GetFieldType(k).ToString() == "System.int32")
                    {
                        rowData[k] = dr.GetInt32(k).ToString();
                    }

                    if (dr.GetFieldType(k).ToString() == "System.String")
                    {
                        rowData[k] = dr.GetString(k);
                    }
                }
                dataGridView1.Rows.Add(rowData);
            }

これを手伝ってくれませんか。ありがとう

4

1 に答える 1

1

上記のコードを使用する代わりに、私はこのコードを使用します、そしてそれは機能します

private void Form6_Load(object sender, EventArgs e)
        {
            loadData();
        }

private void loadData()
            {
                str = new OleDbConnectionStringBuilder();
                str.Provider = "Microsoft.ace.Oledb.12.0";
                str.DataSource = @"\\sisc-erelim\4_Printing\VTDB\DB\VirginiTEADB2.accdb";
                con = new OleDbConnection(str.ConnectionString);
                dataGridView1.DataSource = fillTable("Select* from Accountstbl");
                dataGridView1.Columns["Password"].Visible = false;
                dataGridView1.Columns["Picture"].Visible = false;
            }

        private DataTable fillTable(string sql)
        {
            DataTable datatable = new DataTable();
            using (OleDbDataAdapter da = new OleDbDataAdapter(sql, con))
            {
                da.Fill(datatable);
            }

            return datatable;
        }
于 2013-02-15T02:28:57.817 に答える