2011-03-14 134 views
-1

有人可以幫我轉換成C#嗎?幫助轉換爲C#

//' Import the ODBC namespace for MySQL Connection 
    Imports System.Data.Odbc 
    Partial Class login 
     Inherits System.Web.UI.Page 

     Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate 
      Dim cn As New OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mydb; User=root;Password=;") 
      cn.Open() 
      Dim cmd As New OdbcCommand("Select * from login where username=? and password=?", cn) 

      //'Add parameters to get the username and password 

      cmd.Parameters.Add("@username", OdbcType.VarChar) 
      cmd.Parameters("@username").Value = Me.Login1.UserName 

      cmd.Parameters.Add("@password", OdbcType.VarChar) 
      cmd.Parameters("@password").Value = Me.Login1.Password 

      Dim dr As OdbcDataReader 
      //' Initialise a reader to read the rows from the login table. 
      //' If row exists, the login is successful 

      dr = cmd.ExecuteReader 

      If dr.HasRows Then 
       e.Authenticated = True 
       //' Event Authenticate is true 
      End If 

     End Sub 
    End Class 
    } 
} 
+7

StackOverflow不是代碼轉換服務。請花時間研究:這兩種語法並不相距甚遠。您可以先將關鍵字設置爲小寫,然後學習如何在C#中聲明變量。然後,你甚至可以從編譯錯誤中繼續。 – 2011-03-14 19:48:33

+0

非常抱歉,我不知道代碼轉換,我認爲堆棧溢出是一個你可以得到幫助的地方?感謝社區,我肯定不會發布我知道的可用於代碼轉換的事情。 – 2011-03-14 20:04:29

+1

此外,還有一些需要手動更改。 – 2011-03-14 20:13:31

回答

5
// Import the ODBC namespace for MySQL Connection 
using System.Data.Odbc; 
partial class login : System.Web.UI.Page 
{ 



    protected void 
Login1_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e) 
    { 
     OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mydb; User=root;Password=;"); 
     cn.Open(); 
     OdbcCommand cmd = new OdbcCommand("Select * from login where username=? and password=?", cn); 

     //Add parameters to get the username and password 

     cmd.Parameters.Add("@username", OdbcType.VarChar); 
     cmd.Parameters["@username"].Value = this.Login1.UserName; 

     cmd.Parameters.Add("@password", OdbcType.VarChar); 
     cmd.Parameters["@password"].Value = this.Login1.Password; 

     OdbcDataReader dr = default(OdbcDataReader); 
     // Initialise a reader to read the rows from the login table. 
     // If row exists, the login is successful 

     dr = cmd.ExecuteReader(); 

     if (dr.HasRows) { 
      e.Authenticated = true; 
      // Event Authenticate is true 
     } 

    } 
} 

您可以使用this converter爲未來的轉換。

編輯:

你就必須使用本網站要連接在C#中的事件這樣

protected void Page_Load(object sender, EventArgs e) 
{ 
     Login1.Authenticate += Login1_Authenticate; 
} 
+0

現在正在快速測試的耶穌 – 2011-03-14 19:49:02

+0

當它從相同的地方得到相同的代碼。大聲笑。 – Robaticus 2011-03-14 19:50:03

+1

@Garrith:那是因爲@StackOverflowException無疑使用了一個像http://www.developerfusion.com/tools/convert/vb-to-csharp/這樣的工具來提供這個答案。 (並不是說這有什麼不妥,我的+1)。像這樣的工具對於爲你節省一些繁忙的工作是非常寶貴的。 – 2011-03-14 19:50:26

1

快速轉換:http://converter.telerik.com

它看起來像一個事件處理程序,所以你必須在代碼中連接它。

using System.Data.Odbc; 
partial class login : System.Web.UI.Page 
{ 

    protected void // ERROR: Handles clauses are not supported in C# 
Login1_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e) 
    { 
     OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mydb; User=root;Password=;"); 
     cn.Open(); 
     OdbcCommand cmd = new OdbcCommand("Select * from login where username=? and password=?", cn); 

     //Add parameters to get the username and password 

     cmd.Parameters.Add("@username", OdbcType.VarChar); 
     cmd.Parameters("@username").Value = this.Login1.UserName; 

     cmd.Parameters.Add("@password", OdbcType.VarChar); 
     cmd.Parameters("@password").Value = this.Login1.Password; 

     OdbcDataReader dr = default(OdbcDataReader); 
     // Initialise a reader to read the rows from the login table. 
     // If row exists, the login is successful 

     dr = cmd.ExecuteReader; 

     if (dr.HasRows) { 
      e.Authenticated = true; 
      // Event Authenticate is true 
     } 

    } 
} 
1

其它轉換看起來不錯,但原代碼是有點弱收盤方面/配置數據庫對象。這是一個輕微重構的版本,可以解決這些缺陷:

using System.Data.Odbc; 
partial class login : System.Web.UI.Page 


{ 

    protected void // ERROR: Handles clauses are not supported in C# 
    Login1_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e) 
    { 
     using(OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mydb; User=root;Password=;")); 
     using(OdbcCommand cmd = new OdbcCommand("Select * from login where username=? and password=?", cn)) 
     { 
      cn.Open(); 

      //Add parameters to get the username and password 

      cmd.Parameters.Add("@username", OdbcType.VarChar); 
      cmd.Parameters("@username").Value = this.Login1.UserName; 

      cmd.Parameters.Add("@password", OdbcType.VarChar); 
      cmd.Parameters("@password").Value = this.Login1.Password; 

      // Initialise a reader to read the rows from the login table. 
      // If row exists, the login is successful 

      using(OdbcDataReader dr = cmd.ExecuteReader) 
      { 
      if (dr.HasRows) { 
       e.Authenticated = true; 
       // Event Authenticate is true 
      } 
      } 

    } 
} 
+0

更好的辦法是將ODBC驅逐到MySQL ADO.NET驅動程序。 – 2011-03-14 20:32:59

+0

那裏沒有參數! – RQDQ 2011-03-14 20:40:54