使用c#在Access数据库中获取特定的单元格值
本文关键字:单元格 获取 Access 数据库 使用 | 更新日期: 2023-09-27 18:11:08
在我的数据库中,我有3列:时间,罢工和vol.我无法获得例如第二列的第3个值。我只能得到任何列的第一个值。
我想要的是在另一个变量中存储例如第二列的第三个值,然后继续进行一些计算。换句话说,我需要在指定列的特定位置获取两个值。
任何帮助都是感激的。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''Users''mike''Documents''Database1.mdb;";
OleDbConnection MyConn = new OleDbConnection(ConnStr);
MyConn.Open();
string StrCmd = "SELECT * FROM Table1";
OleDbCommand Cmd = new OleDbCommand(StrCmd, MyConn);
OleDbDataReader ObjReader = Cmd.ExecuteReader();
string VolT0;
string VolT1;
string VolK0;
string VolK1;
if (ObjReader != null)
{
while (ObjReader.Read())
{
VolT0 = ObjReader.GetValue(1).ToString();
VolK0 = ObjReader.GetValue(2).ToString();
//VolK1 = ObjReader.GetValue(2).ToString(); //here is the problem: here I need to get the 3rd value in this column but it's not working !
Console.WriteLine(VolT0 + " - " + VolK0 + "'n");
}
}
ObjReader.Close();
MyConn.Close();
}
}
}
OleDbDataReader
逐条读取数据库行。
while (ObjReader.Read())
{
VolT0 = ObjReader.GetValue(0).ToString(); //time column value
VolK0 = ObjReader.GetValue(1).ToString(); //strike column value
VolK1 = ObjReader.GetValue(2).ToString(); //vol column value
Console.WriteLine("time = {0}, strike = {1}, vol = {2}", VolT0 , VolK0, VolK1 );
}
如果你想第二列的第三个值,你可以在你的while
语句中设置一个counter = 0
,最后增加,当计数器为2
时调用VolK0
值(第二列)
尝试下面,如果你需要第三个值,这意味着该列的索引是2。由于您正在使用while循环并在每行上为相同的字段赋值,因此这些赋值的字段值将被新行值覆盖。如果您只需要获取一个特定的行值,您可以使用where子句并只过滤该记录。
if (ObjReader != null)
{
while (ObjReader.Read())
{
VolT0 = !ObjReader.IsDBNull(0)?ObjReader.GetValue(0).ToString():string.Empty;
VolK0 = !ObjReader.IsDBNull(1)?ObjReader.GetValue(1).ToString():string.Empty;
VolK1 = !ObjReader.IsDBNull(2)?ObjReader.GetValue(2).ToString():string.Empty;
}
}