asp.net中 dataadapter sda.Fill(ds, libname)其中libname是中文,报错为对象名无效,该如何解决?

来源:百度知道 编辑:UC知道 时间:2024/04/29 06:23:53
DataRowView drv = ds.Tables["Libraries"].DefaultView[0];

TextBox1.Text = Convert.ToString(drv.Row["record"]);
string libname = Convert.ToString(drv.Row["LibName"]);
sda.Dispose();

sql = "select * from ['" + libname + "']";
OleDbDataAdapter sda1 = new OleDbDataAdapter(sql, con);
ds.Clear();
sda1.Fill(ds, libname.ToString() );
DataView dv = ds.Tables[libname].DefaultView;
GridView1.DataSource = dv;
GridView1.DataBind();

我的数据库表名是中文的,因此出现很多问题,这是其中一个,请问有什么好的解决方案?我不希望把表名改成英文的

你没有必要在Fill(ds,表名)的时候非让这里的表名等同于你的数据库表名.你随便取个能识别的就OK.
我很少见人在这里用中文表名的.不管你数据库里用的是不是中文表名.起码在DataSet里.我没见过.

TextBox1.Text = Convert.ToString(drv.Row["record"]);
string libname = Convert.ToString(drv.Row["LibName"]);

这两句.列名正确么?

string libname = Convert.ToString(drv.Row["LibName"]);
你这句得到的是什么?单步调试跟踪一下。应该不是你说的那个中文名。