给出以下代码如何将C#中的MYSQL查询结果导入文本框?我已经尝试了几个小时来弄明白 - 我猜应该很容易。这是以下代码尝试。 BTW来自使用程序化PHP我真的很挣MYSQL和C#,我应该使用不同的代码吗?:
...
using MySql.Data.MySqlClient;
namespace houseDB1
{
public partial class Form2 : Form
{
private string server;
private string database;
private string uid;
private string password;
private MySqlConnection connection;
public Form2(string strTextBox)
{
InitializeComponent();
// richTextBox1.Text = strTextBox;
int num = int.Parse(strTextBox);
server = "localhost";
database = "realestate_db";
uid = "root";
password = "";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
connection.Open();
MySqlDataAdapter mySqlDataAdapter;
mySqlDataAdapter = new MySqlDataAdapter("SELECT `ID`, `lat` , `long` FROM `house` ", connection);
DataSet DS = new DataSet();
mySqlDataAdapter.Fill(DS);
richTextBox1.Text = DS.Tables[0].ToString(); // doesn't work
}
...
答案 0 :(得分:1)
您是否有使用TextBox的特殊原因? GridView是正常的方法。
例如你可以这样做:
MySqlConnection conn = new MySqlConnection(connectionString);
MySqlCommand cmd = new MySqlCommand("SELECT `ID`, `lat` , `long` FROM `house`;", conn);
conn.Open();
DataTable dataTable = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(dataTable);
GridVIew.DataSource = dataTable;
GridVIew.DataBind();
答案 1 :(得分:0)
DS.Tables[0].Rows[0][0].ToString();// gets the first row, first cell
因此,您需要循环表格以填充文本框:
string myRichTextTB = "";
for(int i=0; i< DS.Tables[0].Rows.Count; i++)
for(int j=0; j< 3/*number of the selected columns*/; j++)
{
myRichTextTB = myRichTextTB + DS.Tables[0].Rows[i][j].ToString();
}
答案 2 :(得分:0)
是的,你一定要放弃做你现在正在做的事情......
这是一种过时的做事方式,效率低下(由于浪费时间),如果您的查询没有参数化,可能会让您容易受到SQL注入攻击。
您需要的是对象关系映射(ORM) ...它是一种与数据库通信的方式,无需编写单行SQL或担心表名,或者列名称,或列是否为可空类型。您只与C#对象进行交互,并且ORM会在您需要时保留数据,它会生成您在幕后手动编写的所有SQL ...
您的Customers table
将包含Customer
个对象的集合,您的Orders table
将包含Order
个对象,您可以检索所有给定的客户{{1因为&#39;客户&#39;将有一个Orders
属性,您可以导航和检索,而无需编写单行SQL。
那你怎么做的?
首先你需要从NuGet安装实体框架(EntityFramework是微软的ORM)......
最简单的方法是按Collection<Order>
并输入CTRL + Q
并选择第一个选项......
然后,将其输入控制台....
Package Manager
完成之后...安装this extension,您将使用它来对整个数据库进行反向工程,并将其表示在项目的C#类中。