在OledataAdapter上有一点麻烦,并获得了弦结果


private string getPrinterPath()
{
     string query1 = "SELECT printerPath FROM Printers WHERE printerFloor = '" + comboBoxFloor.SelectedItem.ToString() + "' AND printerNumber = " + textBoxPrinterNumber.Text.ToString();
     DataTable dt = new DataTable();
     OleDbDataAdapter da = new OleDbDataAdapter();
     da.SelectCommand = new OleDbCommand(query1, myDataConnection);
     da.Fill(dt);            
}

我正在尝试从该查询的执行中返回的字符串。

任何人都可以告诉我如何从DataAdapter获取数据?

我知道我可以

foreach (DataRow dr in dt.Rows)
{
   Console.WriteLine(dr["printerPath"].ToString());
}

,但我希望返回1个项目,所以我不想在不必要的时候循环运行它

如果有更好的方法,请告诉我。我也对如何"参数化"我的查询感到困惑,因此我不会直接传递

中的值

我通常使用" executesCalar"作为此类内容,这只是返回查询第一行的第一行。

对于参数,您将参数传递到命令。

看起来像这样:

string query1,
    result;
query1 = "SELECT printerPath FROM Printers WHERE printerFloor = '?' AND printerNumber = ?";
using (OleDbConnection conn = new OleDbConnection(myDataConnection)) {
    OleDbCommand cmd = new OleDbCommand(query1, conn);
    cmd.Parameters.AddWithValue("PrinterFloor", comboBoxFloor.SelectedItem.ToString());
    cmd.Parameters.AddWithValue("PrinterNum", textBoxPrinterNumber.Text.ToString());
    conn.Open();
    result = cmd.ExecuteScalar();
}

相关内容

  • 没有找到相关文章

最新更新