根据用户输入显示查询结果

本文关键字:查询 结果 显示 输入 用户 | 更新日期: 2023-09-27 18:13:35

我正在编写c#代码。. NET创建将接受特定输入的web服务。然后它将连接到数据库,根据所提供的输入,必须从我的表中获取整个结果并相应地显示。

然而,我对c#不太熟悉。. NET,所以我不能正确地实现我的代码。有人能帮我一下吗

到目前为止我所做的是:

       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 test3
     {
          /// <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 String GetAttendance(String rollno)
       {
          String result="";

          try
           {
              using (SqlConnection myConnection = new SqlConnection(@"Data Source=.'SQLEXPRESS;Initial Catalog=student;User ID=sa;Password=123"))
            {
                myConnection.Open();
                using (SqlCommand myCommand = new SqlCommand())
                {
                    myCommand.Connection = myConnection;
                    myCommand.CommandText = "SELECT COUNT(*) FROM studentdata WHERE rollno = @rollno";

                    myCommand.Parameters.Add("@rollno", SqlDbType.VarChar).Value = rollno;
                    SqlDataReader myReader = myCommand.ExecuteReader();
                    while (myReader.Read())
                    {
                       result = myReader.ToString();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return "an error occured";
        }
        return result;
     }
   } 
}

如果我运行这段代码,我得到的输出为"System.Data.SqlClient. sqlclient"。SqlDataReader"这不是我想要的

根据用户输入显示查询结果

不要使用数据阅读器,因为只有一个结果是行计数,所以使用ExecuteScalar()并使用int作为结果类型:

int result = Convert.ToInt32(myCommand.ExecuteScalar());

(或者您可以使用result = myReader.GetInt32(0).ToString();获取当前查询的字符串值-但不要这样做)