任何可用的数据表查询生成器,如sql查询生成器
本文关键字:查询 sql 任何可 数据表 | 更新日期: 2023-09-27 18:06:57
我是新来的,我想使用数据表而不是数据库。我想知道为什么数据表查询不同于sql查询?我想从数据表中找到一个值:
SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer
和
using (SqlConnection connect = new SqlConnection(con))
{
int index = lbDebit_Account.FindString(txtDebit_Account.Text);
if (0 <= index)
{
lbDebit_Account.SelectedIndex = index;
}
SqlDataAdapter da3 = new SqlDataAdapter("SELECT *FROM dbo.General_Ledger", connect);
DataTable dt1 = new DataTable();
da3.Fill(dt1);
string lbDebit_Account_numer = lbDebit_Account.SelectedValue.ToString();
string row;
row= Convert.ToString(dt1.Select(string.Format("'Account_number'={0}",lbDebit_Account_numer)));
}
我想执行这个查询:
SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer
所以你需要参数化你的查询:
SqlDataAdapter da3 = new SqlDataAdapter("SELECT * FROM dbo.General_Ledger WHERE Account_number = @Account_number");
da3.SelectCommand.Parameters.AddWithValue("@Account_number", lbDebit_Account.SelectedValue);
DataTable dt1 = new DataTable();
da3.Fill(dt1);
现在你就得到了你想要的一行你可以像这样恢复它:
DataRow dr = dt1.Rows[0];
,然后你可以通过不同的方式获取该行的值:
var val = dr[0]; // grabs the value of the first column in the result list
var val = dr["fieldname"] // grabs the value of a specific field name
,甚至有一些方法将返回类型数据,因为前面提到的返回一个object
,因为底层值可以是许多东西。所以,如果它是一个字符串字段你可以这样做:
var val = dr.Field<string>(0) // grabs the value of the first column and returns it typed as a string
var val = dr.Field<string>("fieldname") // grabs a field and returns it typed as a string
这很简单,你想根据这个字符串[lbdebit_account_number]筛选DataTable[dt1]
DataRow dr = dt1.Select("Account_number = '"+lbDebit_Account_numer ="'");
可以使用
AND OR
操作符
单个代码[']需要字符串变量进行比较。
这里你得到数据行,所有单元格将在一个数组格式你选择任何单元格。
您可以尝试使用DefaultView。DataTable类的RowFilter属性。
的例子:
dataTable.DefaultView.RowFilter = "Account_number=1";