当我们使用 C#.NET 创建 Web 服务以连接到 SQL 数据库时,我无法理解 select * 查询的编写方式。
基本上,我有 4 列。我正在接受用户的特定输入,这是第一列的现有值。现在,根据该值,我想选择剩余 3 列的所有记录。我需要编写一个 SELECT * 查询,但我不知道我将以何种形式获得这些记录。我听说过 SqlDataAdapter,但它会以行-列格式返回我的记录,还是必须将结果存储在某种列表中,然后将其用于其他目的。
有人可以帮助我理解如何编写这样的查询吗?
这段代码是错误的,但它会帮助理解我需要什么
我想根据我的“where子句”条件获取其他列的记录
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace statistics
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public int retrieve(String rollno)
{
int rows=0;
SqlConnection myConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=student;User ID=sa;Password=123");
try
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = myConnection;
String strsql = "SELECT * FROM checkrecord values WHERE rollno=@rollno";
DataSet dataSet = new DataSet();
SqlDataAdapter dataAdapter = new SqlDataAdapter(strsql, myConnection);
myCommand.Parameters.Add("@rollno", SqlDbType.VarChar).Value = rollno;
rows = myCommand.ExecuteNonQuery();
SqlDataReader myReader = myCommand.ExecuteReader()
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
myConnection.Close();
}
return rows;
}
}
}
最佳答案
您需要连接到数据库,然后使用 SQLDataAdapter 将用户输入的 SELECT 查询发送到数据库。类似的东西,
从你的表中选择 col2、col3、col4,其中 col1 = ?
使用 SQLDataAdapter 和指定查询和参数的方法有多种。 SQLDataAdapter 将返回一个包含 DataTable 的 DataSet。然后,您可以使用 DataSet 或 DataTable 将结果填充到您选择的控件(即 DataGrid)中。在 MSDN 上有一个演练:http://msdn.microsoft.com/en-us/library/aa984467%28v=vs.71%29.aspx
根据您的编辑,您不想使用 ExecuteNonQuery。要获取您使用 ExecuteReader 的行。这里的例子: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader%28v=VS.71%29.aspx
关于c# - 在 C#.NET 中为 Web 服务应用程序使用选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038530/