登录时从VB.NET到C#的转换问题
好的,我有一些VB代码可以登录,我希望它现在能在C#中工作。我以为这会很直接,但我错了。行:string connString=ConfigurationManager.ConnectionString(“MyConnection”).ConnectionString;正在连接字符串中抛出错误,我不知道为什么。同样在while语句中,objDR表示它是一个变量,但被用作方法。任何帮助都会很好。以下是整个代码:登录时从VB.NET到C#的转换问题,c#,C#,好的,我有一些VB代码可以登录,我希望它现在能在C#中工作。我以为这会很直接,但我错了。行:string connString=ConfigurationManager.ConnectionString(“MyConnection”).ConnectionString;正在连接字符串中抛出错误,我不知道为什么。同样在while语句中,objDR表示它是一个变量,但被用作方法。任何帮助都会很好。以下是整个代码: Using System; using System.Collections.Gene
Using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void
btnSubmit_Click(object sender, System.EventArgs e)
{
if (((string.IsNullOrEmpty(txtUserName.Text))))
{
lblErrorMessage.Text = "Username must be entered.";
txtUserName.Focus();
return;
}
string connString = ConfigurationManager.ConnectionStrings("MyConnection").ConnectionString;
System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(connString);
string sql = "Select * From TCustomers";
System.Data.SqlClient.SqlDataReader objDR = default(System.Data.SqlClient.SqlDataReader);
System.Data.SqlClient.SqlCommand objCmd = new System.Data.SqlClient.SqlCommand(sql, myConnection);
myConnection.Open();
objDR = objCmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
bool blnLogin = false;
string strPassword = null;
string strUserName = null;
strPassword = txtPassword.Text;
strPassword = strPassword.Trim();
strUserName = txtUserName.Text;
strUserName = strUserName.Trim();
while (objDR.Read())
{
if (((objDR("strUserName").ToString().Trim() == strUserName)) & ((objDR("strPassword").ToString().Trim() == strPassword)))
{
blnLogin = true;
Session["CustomerID"] = objDR("intCustomerID");
Session["UserName"] = objDR("strUserName");
Session["FirstName"] = objDR("strFirstName");
Session["LastName"] = objDR("strLastName");
Session["Email"] = objDR("strEmailAddress");
Session["UserType"] = objDR("intUserTypeID");
break; // TODO: might not be correct. Was : Exit While
}
}
}
}
在VB中,方法调用和数组访问之间没有语法差异,它们都使用
(参数)
。然而,在C语言中,数组使用[]
。自动/死记硬背转换无法正确转换,因为无法区分差异,因此您必须自己修复:
ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
^ ^ convert to [] array access
与访问DataRow的属性相同:
objDR["strUserName"]
^ ^ Convert to [] array access
在VB中,方法调用和数组访问之间没有语法差异,它们都使用
(参数)
。然而,在C语言中,数组使用[]
。自动/死记硬背转换无法正确转换,因为无法区分差异,因此您必须自己修复:
ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
^ ^ convert to [] array access
与访问DataRow的属性相同:
objDR["strUserName"]
^ ^ Convert to [] array access
我在您的代码中发现的第一个问题如下:
objDR("strUserName")
你需要使用
objDR["strUserName"]
将所有引用从括号更改为括号
这就解释了“objDR表示它是一个变量,但被用作一个方法”的错误。我在代码中发现的第一个问题如下:
objDR("strUserName")
你需要使用
objDR["strUserName"]
将所有引用从括号更改为括号
这就解释了“objDR表示它是一个变量,但被用作一种方法”的错误。objDR(“strUserName”)。
甚至不是有效的C 35;objDR(“strUserName”)。
甚至不是有效的C#