C# datagridview未显示MS Access中的数字
我有一个datagrid视图,它的数据源是MS Access(它有一个数据类型、货币、日期/时间和数字),它显示数据库中的数据,但不显示其他数据类型,只显示单词或任何字符串,下面是我添加行的代码C# datagridview未显示MS Access中的数字,c#,winforms,datagridview,oledb,C#,Winforms,Datagridview,Oledb,我有一个datagrid视图,它的数据源是MS Access(它有一个数据类型、货币、日期/时间和数字),它显示数据库中的数据,但不显示其他数据类型,只显示单词或任何字符串,下面是我添加行的代码 string[] rowData = new string[columnCount]; while (dr.Read()) { for (int k = 0; k < columnCount; k++)
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);
}
string[]rowData=新字符串[columnCount];
while(dr.Read())
{
for(int k=0;k
你能帮我吗?谢谢我没有使用上面的代码,而是使用了这段代码,它可以正常工作
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;
}
我没有使用上面的代码,而是使用了这段代码,它是有效的
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;
}
Access表中字段的数据类型是什么?查找INT32的测试会忽略字段可能存储为的所有其他潜在数字数据类型。您可以尝试迭代列并将每个字段的数据类型写入控制台,以确定每个字段的数据类型。它读取数字,但不读取数据库中的货币和日期时间,如果可以的话,我想我应该将数据类型从Access更改为Post表结构。我不会更改Access中的数据类型,但会在上面的代码中添加其他逻辑来处理货币和日期时间。如果我更改代码并使用databind,会怎么样?Access表中字段的数据类型是什么?查找INT32的测试会忽略字段可能存储为的所有其他潜在数字数据类型。您可以尝试迭代列并将每个字段的数据类型写入控制台,以确定每个字段的数据类型。它读取数字,但不读取数据库中的货币和日期时间,如果可以的话,我想我应该将数据类型从Access更改为Post表结构。我不会在Access中更改数据类型,但会在上面的代码中添加额外的逻辑来处理货币和日期时间。如果我更改代码并使用数据绑定,会怎么样。