2017-08-18 44 views
0

我想用C#將MySQL數據庫連接到winform。我收到此錯誤:System.ArgumentException:'關鍵字不支持:'主機'。我已經使用測試連接檢查了數據庫是否有適當的連接,並且我正在使用的連接字符串是使用服務器瀏覽器提供給我的連接字符串。在做研究之後,問題在於我使用的引用或者app.config本身。有沒有人有任何這個問題的經驗或可以提供任何反饋?這是非常基本的代碼片段我的工作:'關鍵字不支持錯誤'使用Dot Connect和MySQL

using System; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace savetodatabasepractice 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 


     private void button1_Click(object sender, EventArgs e) 
     { 
      using (SqlConnection conn = new SqlConnection()) 
      { 
       conn.ConnectionString = "User Id=XXXXXX;Host=localhost;Database=XXXXXX"; 
       SqlCommand insertCommand = new SqlCommand("INSERT INTO tbl_newdata (ID, Temperature, Humidity) VALUES (1, 72, 34)", conn); 
      } 
     } 
    } 
} 

我使用Visual Studio 2017年,DotConnect爲MySQL,MySQL服務器,並WAMP連接。謝謝!

編輯:閱讀文檔後,這種格式示例C#程序應該像

using System; 
using System.Windows.Forms; 
using Devart.Data.MySql; 

namespace savetodatabasepractice 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 


     private void button1_Click(object sender, EventArgs e) 
     { 
      MySqlConnection conn = new MySqlConnection("User Id=root;Host=localhost;Database=XXXXXX;"); 
      MySqlCommand cmd = new MySqlCommand(); 
      cmd.CommandText = "INSERT INTO tbl_newdata (ID, Temperature, Humidity) VALUES (1,73,32)"; 
      cmd.Connection = conn; 
      conn.Open(); 
      try 
      { 
       int aff = cmd.ExecuteNonQuery(); 
       MessageBox.Show(aff + " rows were affected."); 
      } 
      catch 
      { 
       MessageBox.Show("Error encountered during INSERT operation."); 
      } 
      finally 
      { 
       conn.Close(); 
      } 
     } 
    } 
} 

的關鍵是不僅使用正確的參考,但也下載上的NuGet正確的包。容易忘記初學者!

+0

嘗試'服務器'而不是'主機' –

回答

0

什麼?您正在使用DotConnect for MySQL,但您使用的是SqlConnection類。這是這裏的問題,因爲SqlConnection用於SQLServer。您應該使用using Devart.Data.MySql.MySqlConnection

using (SqlConnection conn = new SqlConnection()) 
{ 

檢查文件第一個說什麼。 https://www.devart.com/dotconnect/mysql/docs/

+0

經典案例不閱讀手冊!閱讀文檔後,正確的引用是'使用Devart.Data.MySql;'。感謝您指引我朝着正確的方向前進,我會用正確的代碼更新我的問題,以防其他人遇到與我一樣的問題。 –