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

时间:2011-11-03 03:30:23

标签: c# .net web-services

我正在使用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.SqlDataReader”,这不是我想要的

1 个答案:

答案 0 :(得分:2)

不要为此使用数据读取器,只有一个结果是行数,因此请使用ExecuteScalar()并使用int作为结果的类型:

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

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