我正在使用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”,这不是我想要的
答案 0 :(得分:2)
不要为此使用数据读取器,只有一个结果是行数,因此请使用ExecuteScalar()
并使用int作为结果的类型:
int result = Convert.ToInt32(myCommand.ExecuteScalar());
(或者你可以使用result = myReader.GetInt32(0).ToString();
获取当前查询的字符串值 - 尽管不要这样做)