[WebMethod]
public string cx()
{
// DataSet thisdataset = new DataSet();
string str = "Data Source=localhost;Initial Catalog=english;Persist Security Info=true;User ID=sa;Password=123";
SqlConnection Con = new SqlConnection(str);
string comStr = "select * from dict ";
SqlCommand Com = new SqlCommand(comStr, Con); Con.Open();
SqlDataReader rd = Com.ExecuteReader();
while (rd.Read())
{
return rd.GetString(0)+rd.GetString(1);
}
rd.Close();
Con.Close();
}
程序执行后不能返回查询结果,显示内部服务器错误。查询结果不是用sqlDataReader对象的GetString(0方法来返回吗?
而且存在一个警告,提示return以后的语句无效,确实return之后的语句无法执行,但sqlDataReader必须是连接读取,将rd.Close();语句提前将无法返回结果;
请高手指教,如何将服务端的sql查询结果通过函数来返回给客户端,C#编写的服务端如何与j2me编写的客户端相连接?
public string cx()
{
// DataSet thisdataset = new DataSet();
string str = "Data Source=localhost;Initial Catalog=english;Persist Security Info=true;User ID=sa;Password=123";
SqlConnection Con = new SqlConnection(str);
string comStr = "select * from dict ";
SqlCommand Com = new SqlCommand(comStr, Con); Con.Open();
SqlDataReader rd = Com.ExecuteReader();
while (rd.Read())
{
return rd.GetString(0)+rd.GetString(1);
}
rd.Close();
Con.Close();
}
程序执行后不能返回查询结果,显示内部服务器错误。查询结果不是用sqlDataReader对象的GetString(0方法来返回吗?
而且存在一个警告,提示return以后的语句无效,确实return之后的语句无法执行,但sqlDataReader必须是连接读取,将rd.Close();语句提前将无法返回结果;
请高手指教,如何将服务端的sql查询结果通过函数来返回给客户端,C#编写的服务端如何与j2me编写的客户端相连接?
解决方案 »
- 开机启动后最小化到托盘 怎么搞啊
- 如何透过 Reflection 调用 dll 中的自订 class
- VB代码转换成C#代码?
- 100 求 水晶报表简单实例!谢谢!
- C1WebChart 中的Axis X 和Y如何進行綁定(急)
- 请问怎样能使winform窗体的大小固定住,不能调整其大小!
- 在程序中怎样获取计算机名称?
- .net2中使用System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_Processor");的时候出错了
- new一个个没有构造函数的class的实例,对象成员被初始化成什么?
- C#中数据绑定是否可以有条件绑定(急)
- 参数的传递
- sendkeys能发送点击事件吗?
String str = "";
while (rd.Read())
{
str = rd.GetString(0)+rd.GetString(1);
}
rd.Close();
Con.Close();
return str;
}
while (rd.Read())
{
return rd.GetString(0)+rd.GetString(1);
}
1.只返回了第一条数据。
可以定义一个接收数据的类型,追加数据后返回,
或者直接返回SqlDataReader 实例。rd.Close();
Con.Close();
2.放在try catch finally结构中。
try
...
finally
rd.Close();
Con.Close();3.显示内部服务器错误,代码不全,无法得出结论。
using(SqlConnection Con = new SqlConnection(str))
{
string comStr = "select * from dict ";
SqlCommand Com = new SqlCommand(comStr, Con);
Con.Open();
SqlDataReader rd = Com.ExecuteReader();
if(rd.hasRows)
{
while(rd.Read())
{
str+=rd.GetString(0)+rd.GetString(1);
}
}
rd.Close();
Con.Close();
}
return str;
DataTable dt=new DataTable();
SqlDataAdapter sda=new SqlDataAdapter(sqlstr,con);
con.Open();
sda.Fill(dt);
con.Close();
return dt;
using System;
using System.Web;
using System.Data;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.SqlClient;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string cx()
{
string str = "Data Source=localhost;Initial Catalog=english;Persist Security Info=true;User ID=sa;Password=123"; string s = "";
SqlConnection Con = new SqlConnection(str);
string comStr = "select * from dict ";
SqlCommand Com = new SqlCommand(comStr, Con);
Con.Open();
SqlDataReader rd = Com.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
s +="\n"+ rd.GetString(0) + rd.GetString(1);
}
}
rd.Close();
Con.Close();
return s;
//public Service () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
//}
}
}
不客气。但是与SqlDataReader相比,SqlDataAdapter的效率会低一点点。还有,我看了你的代码,建议你使用StringBuilder,而不要用字符串拼接,这样在数据量较大时,速度会快很多。