Jon,
Your answers are very helpful. We are close to success. A few more stand as
below:
1: VB::
Private Function Connect() As String
Dim sConnect As String
'this value could go directly in the Global.asax.vb declarations
Select Case CType(Application("DBType"), String).ToLower
Case "sqlserver"
sConnect =
ConfigurationSettings.AppSettings.Get("SQLConnecti on")
'Return "Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info=False;Initial
Catalog=PasswordProtect;Data Source=(local)"
Case "access"
sConnect =
ConfigurationSettings.AppSettings.Get("AccessConne ction")
'Return "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Inetpub\DBs\PasswordProtect.mdb;Persist Security Info=False"
End Select
Return sConnect
End Function
C#::
private string Connect()
{
string sConnect;
// this value could go directly in the Global.asax.vb declarations
switch (((string)(Application["DBType"])).ToLower())
{
case "sqlserver":
sConnect = ConfigurationSettings.AppSettings.Get("SQLConnecti on");
// Return "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist
Security Info=False;Initial Catalog=PasswordProtect;Data Source=(local)"
break;
case "access":
sConnect = ConfigurationSettings.AppSettings.Get("AccessConne ction");
// Return "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Inetpub\DBs\PasswordProtect.mdb;Persist Security Info=False"
break;
}
return sConnect;
}
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(229): Use of
unassigned local variable 'sConnect'
It in fact complains about switch input. I mean it can not switch and assign
value. Can not switch happened later as well.
2. VB:: If (datData.ToString).Length Then
C#:: if (datData.ToString().Length)
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(264): Cannot
implicitly convert type 'int' to 'bool'
3. VB:: sArray = WebPath.Split("/")
C#:: sArray = WebPath.Split("/");
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(294): The best
overloaded method match for 'string.Split(params char[])' has some invalid
arguments
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(294): Argument
'1': cannot convert from 'string' to 'char[]'
Thanks. -Dale
"Jon Skeet [C# MVP]" wrote:
dale zhang <da*******@discussions.microsoft.com> wrote: Thanks, Jon. That problem was sloved.
But a few new ones:
1. VB:: Response.Redirect _
(Session("LoginTarget"))
C#::?
Response.Redirect(Session["LoginTarget"]);
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(84): The best
overloaded method match for 'System.Web.HttpResponse.Redirect(string)' has
some invalid arguments
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(84): Argument
'1': cannot convert from 'object' to 'string'
You'll need to cast to string:
Response.Redirect ((string) Session["LoginTarget"]);
The fact that you didn't in VB suggests that you had Option Strict
turned off - a bad idea!
2.VB:: Dim sPage As String = Session("LoginTarget")
C#:: string sPage = Session["LoginTarget"];
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(108): Cannot
implicitly convert type 'object' to 'string'
Same again.
3.VB::
Private Function CheckPass(ByVal User As String, ByVal Password As
String) As Boolean
Dim dbConn As OleDbConnection
Dim dbCmd As OleDbCommand
Dim dbDR As OleDbDataReader
Dim sConn As String = Connect()
Dim sSQL As String
CheckPass = False
C#::
private bool CheckPass(string User, string Password)
{
OleDbConnection dbConn;
OleDbCommand dbCmd;
OleDbDataReader dbDR;
string sConn = Connect();
string sSQL;
CheckPass = false; ???
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(131): Method
'passwordProtectCSharp.loginControl.CheckPass(stri ng, string)' referenced
without parentheses
Not sure on that - what is "CheckPass = false" meant to do, exactly? Is
there a variable called CheckPass somewhere? Don't forget that C# is
case-sensitive, whereas VB.NET isn't.
4. VB:: Date.Now.ToString
c#??
DateTime.Now.ToString()
5. VB:: If (datData.ToString).Length Then
C#:: if (datData.ToString.Length)
c:\inetpub\wwwroot\passwordProtectCSharp\loginCont rol.ascx.cs(272):
'System.DateTime.ToString(string)' denotes a 'method' which is not valid in
the given context
Use ToString().Length rather than ToString.Length. VB.NET doesn't make
you use brackets when there aren't any parameters, unfortunately -
making method calls look like properties :(
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too