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);
}
我正在尝试获取从执行此查询返回的String。
有人可以告诉我如何从DataAdapter获取数据吗?
我知道我可以
foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(dr["printerPath"].ToString());
}
但我希望退回1件商品,这样我就不想在没有必要时循环运行
如果有更好的方法,请告诉我。 我也对如何"参数化"感到困惑。我的查询所以我没有直接传递值
答案 0 :(得分: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();
}