2016-09-13 2 views
-5

Я использую сообщество Visual Studio 2015, и я использую MySQL-коннектор (MySQL для Visual Studio) для подключения моей базы данных MySQL к Visual Studio, эта часть уже выполнена, и у меня есть Visual Studio, связанная с базой данных.Как запустить запрос C#?

Теперь мне нравится знать, что является моим следующим шагом, чтобы получить (используя запрос выбора) данные из базы данных в мою программу формы?

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 ? 
    } 
} 
} 

Я получил свой ответ! Проверьте лучший ответ.

+2

Это выглядит как C#/CLI, а не C++. – NathanOliver

+0

@NathanOliver Моя ошибка, я имею в виду C# извините – Soheyl

+0

Я знаю, что вы намеревались набрать тот же самый вопрос в Google в первую очередь, найти что-то попробовать и только спросить здесь, если вы застряли на чем-то конкретном. Мы здесь, чтобы помочь, но вы должны помочь себе. –

ответ

0

я получил ответ:

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(); 
} 
1

Я должен бежать немного, поэтому я возьму вас на слово yoyur, что вы что-то пробовали и опубликовали это в надежде, что это может вам помочь (приятно видеть, что вы сделали, чтобы знать, как чтобы помочь вам).

Вы сказали, что у вас работает соединение. Вот несколько примеров основных запросов. Самое важное, что нужно помнить, - это много разных способов сделать это, поэтому они предназначены только для примера. Они все ручные - для помощи в сборе данных, что-то автоматически, вам придется отправлять и спрашивать.

Пожалуйста, ПОЖАЛУЙСТА, как вы научитесь это делать - убедитесь, что вы всегда используете параметры и не делаете такие вещи, как «UPDATE myUserData set DRIVER_LICENSE =« U7439821 »WHERE LAST_NAME = 'Smith'". Вы просите о том, чтобы с вами случилось что-то плохое, если вы это сделаете. Возьмите дополнительные 30 секунд, чтобы использовать команду.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», и вы должны получить всю необходимую вам помощь.

+0

Хорошо - они должны вам помочь. При использовании Reader вам нужно будет преобразовать тип данных каждого поля в его предполагаемый фактический тип данных (пример, который я давал, был для другого вопроса SO, которому требовались только строки. Кроме того, я не использовал TRY/CATCH/FINALLY чтобы все было просто, поэтому это вызовет исключение, если что-то не так. После того, как вы выясните основы, вернитесь и добавьте обработку ошибок. –

+0

Спасибо, мне потребуется время, чтобы понять это: D, но thx :) – Soheyl

Смежные вопросы