根据用户输入显示查询结果
本文关键字:查询 结果 显示 输入 用户 | 更新日期: 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();
获取当前查询的字符串值-但不要这样做)