gpt4 book ai didi

c# - 任何可用的数据表查询生成器,如 sql 查询生成器?

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:16 25 4
gpt4 key购买 nike

我是网络新手,我想使用数据表而不是数据库。我想知道为什么数据表查询与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

关于c# - 任何可用的数据表查询生成器,如 sql 查询生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15766330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com