繁体   English   中英

位置0没有行:在c#中从数据集获取值到文本框时

[英]There is no row at position 0 : While getting value from Dataset to Textbox in c#

我试图从Excel的单元格到C#中的文本框获取价值。 我已经使用数据集从excel获取值,但是当从数据集取值到文本框时它给出了错误

位置0没有行

我也尝试使用Item Array但没有用。 这是我的代码:

DataSet dsloc = new DataSet();
 OleDbDataAdapter daloc = new OleDbDataAdapter();
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
OleDbConnection con = new OleDbConnection(connStr);
string strloc = "select * from [sheet1$A5:A5]";
OleDbCommand cmdloc = new OleDbCommand(strloc, con);
con.Open();
dsloc.Clear();
daloc.SelectCommand = cmdloc;
daloc.Fill(dsloc);
txtloc.Text = dsloc.Tables[0].Rows[0]["Location"].ToString();

我努力了

              DataRow drow;
              drow = dsloc.Tables[0].Rows[0];
              txtloc.Text = drow.ItemArray.GetValue(1).ToString();

   txtloc.Text = dsloc.Tables[0].Rows[0][0].ToString();

我的数据集显示其中有价值。 在此处输入图片说明
但是这些都不起作用。 请指教。 谢谢

找到解决方案后,来自excel的值实际上就是数据表的列名,就像我在屏幕截图中可以看到的那样,所以我只需要获取列名即可。

 DataTable dtloc = new DataTable();
 string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
 string strloc = "select * from [sheet1$A5:A5]";
 OleDbCommand cmdloc = new OleDbCommand(strloc, con);
 con.Open();
 daloc.SelectCommand = cmdloc;

string location = dtloc.Columns[0].ColumnName.ToString();

还使用数据表代替数据集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM