我正在尝试在 .NET 中构建 Web 服务,它将从 mySQL 数据库中检索数据。此 Web 服务稍后将与显示此数据的窗口窗体相结合。
到目前为止,我已经准备好数据库,数据库和 Web 服务之间的连接已经建立,表单也已准备就绪。
但是,我无法从表本身检索特定的信息位。谁能帮我弄清楚我的下一步应该是什么?我在这个问题上搜索了很多,但我仍然找不到关于这个问题的好教程...如果您有任何想法,那么您能否也发布链接?提前致谢!
额外信息:假设有一个名为“testdata”的示例表,其中包含三列(“id”、“name”、“age”)。如何提取姓名和年龄并将其显示在表单上?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace WebService2
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
private void connectoToMySql()
{
string connString = "SERVER=localhost" + ";" +
"DATABASE=testdatabase;" +
"UID=root;" +
"PASSWORD=password;";
MySqlConnection cnMySQL = new MySqlConnection(connString);
MySqlCommand cmdMySQL = cnMySQL.CreateCommand();
MySqlDataReader reader;
cmdMySQL.CommandText = "select * from testdata";
cnMySQL.Open();
reader = cmdMySQL.ExecuteReader();
//-----------------------------------------------------------
// This is the part where I should be able to retrieve the data from the database
//-----------------------------------------------------------
cnMySQL.Close();
}
}
}
最佳答案
创建一个公共(public)方法,用 WebMethodAttribute 标记,并返回一个 DataTable(如果您的消费者是 .net 客户端)。让消费者调用该方法并对 DataTable 做任何您想做的事。
[System.Web.Services.WebMethod]
public DataTable connectoToMySql()
{
string connString = "SERVER=localhost" + ";" +
"DATABASE=testdatabase;" +
"UID=root;" +
"PASSWORD=password;";
MySqlConnection cnMySQL = new MySqlConnection(connString);
MySqlCommand cmdMySQL = cnMySQL.CreateCommand();
MySqlDataReader reader;
cmdMySQL.CommandText = "select * from testdata";
cnMySQL.Open();
reader = cmdMySQL.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
cnMySQL.Close();
return dt;
}
关于c# - 使用 C# 构建的 Web 服务,用于从 mySQL 数据库中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8362835/