如何运行c#查询

本文关键字:查询 运行 何运行 | 更新日期: 2023-09-27 18:06:43

我使用Visual Studio社区2015,我使用MySQL连接器(MySQL for Visual Studio)连接我的MySQL数据库到Visual Studio,这部分已经完成,我有Visual Studio连接到数据库。

现在我想知道我的下一步是什么(使用一个选择查询)数据从数据库到我的表单程序?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test_1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        // How can i get data from the database in here ?
    }
}
}

我得到了我的答案!检查最佳答案

如何运行c#查询

我要跑一段时间了,所以我会相信你的话,你已经尝试了一些东西,并发布这篇文章,希望它能帮助你(很高兴看到你已经做了什么,知道如何帮助你)。

你说连接正常。下面是一些基本查询的示例。最重要的是要记住有很多不同的方法来做这个,所以这些只是作为例子。它们都是手动的——如果需要自动绑定某些东西的帮助,你必须发帖询问。

当你学会这样做时,请确保你总是使用参数,不要做像"UPDATE myUserData set DRIVER_LICENSE = 'U7439821' WHERE LAST_NAME = 'Smith'"这样的事情。如果你那样做,你就是在乞求不好的事情发生在你身上。多花30秒使用command.Parameter.Add()。

最后,这些例子是MS-SQL Server。您需要将连接从SqlConnection更改为MySqlConnection,从SQLCommand更改为MySqlCommand。

如果你还有其他问题,尽管问。

 //these are connection methods that help connect you to your database manually.
 public SqlConnection getConn()
    {
        return new SqlConnection(getConnString());
    }
    public string getConnString()
    {
        return @"Data Source=lily.arvixe.com;Initial Catalog={My_Database_Name};Persist Security Info=True;User ID={My_Database_Username};Password={My_Database_Password};Connection Timeout=7000";
    }
   //to get a single value from a single field:
   public object scalar(string sql)
    {
        object ret;
        using (SqlConnection conn = getConn())
        {
            conn.Open();
            using (SqlCommand com = conn.CreateCommand())
            {
                com.CommandText = sql;
                ret = com.ExecuteScalar();
            }
            conn.Close();
        }
        return ret;
    }
    //To do a SELECT with multiple rows returned
    private List<string> get_Column_Names(string tableName)
    {
        List<string> ret = new List<string>();
        using (SqlConnection conn = getConn())
        {
            conn.Open();
            using(SqlCommand com = conn.CreateCommand())
            {
                com.CommandText = "select column_Name from INFORMATION_SCHEMA.COLUMNS where table_Name = '" + tableName + "'";
                com.CommandTimeout = 600;
                SqlDataReader read = com.ExecuteReader();
                while (read.Read())
                {
                    ret.Add(Convert.ToString(read[0]));
                }
            }
            conn.Close();
        }
        return ret;
    }
    // to do an INSERT or UPDATE or anything that does not return data
    // USE PARAMETERS if people go anywhere near this data
    public void nonQuery(string sql)
    {
        using(SqlConnection conn = getConn())
        {
            conn.Open();
            using(SqlCommand com = conn.CreateCommand())
            {
                com.CommandText = sql;
                com.CommandTimeout = 5900;
                com.ExecuteNonQuery();
            }
            conn.Close();
        }
    }
    //to save a DataTable manually:
    public void saveDataTable(string tableName, DataTable table)
    {
        using (SqlConnection conn = getConn())
        {
            conn.Open();
            using (var bulkCopy = new SqlBulkCopy(conn))//, SqlBulkCopyOptions.KeepIdentity))
            {
                // my DataTable column names match my SQL Column names, so I simply made this loop. However if your column names don't match, just pass in which datatable name matches the SQL column name in Column Mappings
                foreach (DataColumn col in table.Columns)
                {
                    bulkCopy.ColumnMappings.Add(col.ColumnName, "[" + col.ColumnName + "]");
                }
                bulkCopy.BulkCopyTimeout = 8000;
                bulkCopy.DestinationTableName = tableName;
                bulkCopy.BatchSize = 10000;
                bulkCopy.EnableStreaming = true;
                // bulkCopy.SqlRowsCopied += BulkCopy_SqlRowsCopied;
                //bulkCopy.NotifyAfter = 10000;
                //isCopyInProgess = true;
                bulkCopy.WriteToServer(table);
            }
            conn.Close();
        }
    }

同样,有很多方法可以通过编程来完成这些任务——我只展示最基本的方法。如果你想学习如何自动绑定控件到数据,试着搜索"C-sharp Databind CONTROL_NAME Visual studio",你应该得到所有你需要的帮助。

我得到了我的答案:

MySqlConnection sqlConnection1 = new MySqlConnection("server=server;uid=username;" + "pwd=password;database=database;");
MySqlCommand cmd = new MySqlCommand();
MySqlDataReader reader;
cmd.CommandText = "SELECT * FROM table";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
reader = cmd.ExecuteReader();
try
{
 reader.Read();
 value = reader.GetString(x);
}
finally
{
 reader.Close();
}