c#中怎么编程操作一种任意表名的数据表并显示在datagridview中?

[复制链接]
查看11 | 回复2 | 2010-5-24 13:04:50 | 显示全部楼层 |阅读模式
本人资金极少,愿知道的朋友帮帮忙,我将不尽感激!
OpenFileDialog OpenFile = new OpenFileDialog();

OpenFile.Title = "请选择数据库文件";

OpenFile.Filter = "Access数据库文件(*.mdb)|*.mdb";

OpenFile.ShowDialog();

// if(OpenFile .)

//定义字符串变量,保存用户选择

string databaseName = String.Empty;

databaseName = OpenFile.FileName;

if (databaseName == string.Empty)

return;

//判断是否输入密码

//if (textBox1.Text == string.Empty)

//return;

//定义连接数据库的对象

string strCon;

if (checkBox1.CheckState == CheckState.Checked)

{

if (textBox1.Text == string.Empty)

return;

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password="

+ textBox1.Text + ";User Id=admin;Data source="

+ databaseName;//数据库有密码

}

else

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;"

+ ";User Id=admin;Data source="

+ databaseName; ;//数据库无密码

OleDbConnection conn = new OleDbConnection(strCon );

conn.Open();

//判断连接状态

if (conn.State == ConnectionState.Open)

{

MessageBox.Show("数据库连接成功", "信息提示");//

OleDbCommand cmd = new OleDbCommand();

cmd.Connection = conn;
string str = string.Format("select * from {0}",databaseName);//错误在此,但是想了很多办法都无济于事!!
cmd.CommandText = str;

cmd.CommandType = CommandType.Text;

//int i=Convert.ToInt32 (cmd.ExecuteScalar());

//MessageBox.Show("数据库中的记录总数为:" + i.ToString(), "信息提示");

OleDbDataAdapter sda = new OleDbDataAdapter();

sda.SelectCommand = cmd;

//定义数据集对象

DataSet ds = new DataSet();

sda.Fill(ds, "sioerj");//

dataGridView1.DataSource = ds.Tables[0];

}



else

MessageBox.Show("数据库连接不成功", "信息提示");
string str = string.Format("select * from [{0}]",databaseName);
我曾经也尝试过仍然不行

回复

使用道具 举报

千问 | 2010-5-24 13:04:50 | 显示全部楼层
select * from tablename你在填表名的地方填数据库名称,当然出错。
回复

使用道具 举报

千问 | 2010-5-24 13:04:50 | 显示全部楼层
是不是说在XXX附近有语法错误啊?改成string str = string.Format("select * from [{0}]",databaseName);试试行不?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行