C# SQL - 获得一个结果的最有效方法是什么?

发布于 2024-11-19 14:55:40 字数 372 浏览 0 评论 0原文

确实如标题。

我只想反对 SQL 数据库一行上的列中的一个特定值。

我将使用的 PHP 代码是:

$result = mysql_query("SELECT price FROM delivery WHERE id='$id'");
echo mysql_result($result,0);

这将从我选择的 autoinc id 中获取价格。

由于我是 C# 新手,因此很难理解,因为似乎有许多不同的方法可以获得相同的结果。

任何帮助将不胜感激,谢谢!

编辑

我正在使用 System.Data.SqlClient,到目前为止,它让我感到自豪。

As title really.

I want to object just one specific value from a colum on one row of a SQL database.

The PHP code I would use would be:

$result = mysql_query("SELECT price FROM delivery WHERE id='$id'");
echo mysql_result($result,0);

That would get me the price from what ever autoinc id I choose.

As I'm new to C# its quite tricky to get my head around as there seems to be many different methods to obtain the same results.

Any help would be appreciated, thanks!

EDIT

I'm using System.Data.SqlClient as, so far, its done me proud.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

诺曦 2024-11-26 14:55:40

如果您要检索的 PRICE 列的数据类型是标量值,并且您只会获得一条记录,那么我认为最有效的方法是 ExecuteScalar() 方法。这是一些示例代码:

string conString="Data Source=local;Initial Catalog=...."
SQLConnection con=new SQLConnection(conString);
SQLCommand cmd=new SQLCOmmand("SELECT price FROM delivery WHERE =@ID",con)
cmd.Parameters.Add("@ID", SqlDbType.Int).Value=125//Off course it just a sample value
con.Open();
float price=(decimal)cmd.ExecuteScalar();

......
con.Close();//don't forget

If data type of PRICE column you want to retrieve is a scalar value and you'll get only one record then I assume the most efficient way would be ExecuteScalar() method. Here's a little sample code:

string conString="Data Source=local;Initial Catalog=...."
SQLConnection con=new SQLConnection(conString);
SQLCommand cmd=new SQLCOmmand("SELECT price FROM delivery WHERE =@ID",con)
cmd.Parameters.Add("@ID", SqlDbType.Int).Value=125//Off course it just a sample value
con.Open();
float price=(decimal)cmd.ExecuteScalar();

......
con.Close();//don't forget
倾听心声的旋律 2024-11-26 14:55:40

例如使用 ADO.NET。

string strSQL = "SELECT COUNT(*) FROM Products WHERE CategoryID=1"; 
SqlCommand cmd = new SqlCommand(strSQL, con); 
int nr = Convert.ToInt32(cmd.ExecuteScalar());

for example with ADO.NET.

string strSQL = "SELECT COUNT(*) FROM Products WHERE CategoryID=1"; 
SqlCommand cmd = new SqlCommand(strSQL, con); 
int nr = Convert.ToInt32(cmd.ExecuteScalar());
凉世弥音 2024-11-26 14:55:40

您始终可以使用 SQL 中的 TOP 函数来重新调整单个结果:

$result = mysql_query("SELECT TOP (1) price FROM delivery WHERE id='$id'");

我不确定这是否会帮助您完成您想要做的事情,但我希望它有所帮助。

you could always use the TOP function in SQL to retun a single result:

$result = mysql_query("SELECT TOP (1) price FROM delivery WHERE id='$id'");

I am not sure if this will help you to do what you are looking to do, but I hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文