Mike
Mike

Reputation: 2313

ConnectionString Error

I have a form that after the user inputs a user name and password and click the add button it should add it to my tblUserLogin. Right now it has an error that says:

Format of the initialization string does not conform to specification starting at index 0. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.

Line 40:            // userPassword = (txtPassword.Text);
Line 41: 
Line 42:         using (OleDbConnection conn = new OleDbConnection("PayrollSystem_DBConnectionString"))
Line 43: 
Line 44:          {

Here is the html code for my frmManageUsers form:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"  
        ConnectionString="<%$ ConnectionStrings:PayrollSystem_DBConnectionString %>"  
        ProviderName="<%$ ConnectionStrings:PayrollSystem_DBConnectionString.ProviderName %>"  

   SelectCommand="SELECT [UserID], [UserName], [UserPassword], [SecurityLevel] FROM [tblUserLogin]"> 
</asp:SqlDataSource> 

</div> 
    <div align="center"> 
    <asp:Label ID="Label1" runat="server" Text="Manage Users"></asp:Label> 
<p> 
    <asp:Label ID="Label2" runat="server" Text="User Name:"></asp:Label> 
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 
</p> 
<p> 
    <asp:Label ID="Label3" runat="server" Text="Password:"></asp:Label> 
    <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> 
</p> 
        <p> 
            <asp:Label ID="Label4" runat="server" Text="Security Level:"></asp:Label> 
            <asp:DropDownList ID="drpdwnlstSecurityLevel" runat="server"  
                onselectedindexchanged="drpdwnlstSecurityLevel_SelectedIndexChanged"> 
                <asp:ListItem>A</asp:ListItem> 
                <asp:ListItem>U</asp:ListItem> 
            </asp:DropDownList> 
</p> 
        <p> 
            <asp:Button ID="btnAddUser" runat="server" onclick="btnAddUser_Click1"  
    Text="Add User" />  
  </p> 
        <p> 
            <asp:Label ID="lblError" runat="server"></asp:Label> 
</p> 

    </div> 
<p> 
    &nbsp;</p> 
            <div align="center"> 
<asp:GridView ID="tblUserLogin" runat="server" AutoGenerateColumns="False"  
    DataSourceID="SqlDataSource1"> 
    <Columns> 
        <asp:BoundField DataField="UserID" HeaderText="UserID" InsertVisible="False"  
            SortExpression="UserID"></asp:BoundField> 
        <asp:BoundField DataField="UserName" HeaderText="UserName"  
            SortExpression="UserName"></asp:BoundField> 
        <asp:BoundField DataField="UserPassword" HeaderText="UserPassword"  
            SortExpression="UserPassword"></asp:BoundField> 
        <asp:BoundField DataField="SecurityLevel" HeaderText="SecurityLevel"  
            SortExpression="SecurityLevel"></asp:BoundField> 
        <asp:CommandField ShowEditButton="True"></asp:CommandField> 
        <asp:CommandField ShowDeleteButton="True"></asp:CommandField> 
    </Columns> 
</asp:GridView> 
</form> 
</body> 
</html>

Here's my code:

public partial class frmManageUsers : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btnAddUser_Click1(object sender, EventArgs e) 
    { 
        //string userName, userPassword; 

        if (txtUserName.Text == "" || txtUserName.Text == null) 
        { 
            lblError.Text = ("User Name may not be empty"); 
            lblError.ForeColor = System.Drawing.Color.Red; 
            return; 
        } 

        if (txtPassword.Text == "" || txtPassword.Text == null) 
        { 
            lblError.Text = ("Password may not be empty"); 
            lblError.ForeColor = System.Drawing.Color.Red; 
            return; 
        } 

        using (OleDbConnection conn = new OleDbConnection("PayrollSystem_DBConnectionString")) 
        { 
            string insert = "Insert INTO tblUserLogin (UserName, UserPassword, SecurityLevel) Values (@UserName, @UserPassword, @SecurityLevel)"; 
            OleDbCommand cmd = new OleDbCommand(insert, conn); 
            cmd.Parameters.Add("@UserName", txtUserName.Text); 
            cmd.Parameters.Add("@UserPassword", txtPassword.Text); 
            cmd.Parameters.Add("@SecurityLevel", drpdwnlstSecurityLevel.SelectedValue);   
            cmd.ExecuteNonQuery();       
        } 

        Session["UserName"] = txtUserName.Text; 
        Session["Password"] = txtPassword.Text; 
        Session["SecurityLevel"] = drpdwnlstSecurityLevel.SelectedValue; 
        Server.Transfer("frmManageUsers.aspx"); 

        //Server.Transfer("grdUserLogin");  
    } 
}

Upvotes: 2

Views: 1627

Answers (2)

user596075
user596075

Reputation:

You actually need to pass the valid Connection String to the connection constructor:

OleDbConnection conn = new OleDbConnection("PayrollSystem_DBConnectionString")
// this is not an actual connection string

Check out Connection Strings to assist in making your valid connection string.

What it does look like though is that you're trying to pull your connection string out of your web.config file. Something like this would work:

using System.Configuration;

// ....

OleDbConnection conn = 
    new OleDbConnection(ConfigurationManager.ConnectionStrings["PayrollSystem_DBConnectionString"].ConnectionString);

Upvotes: 2

Ash Burlaczenko
Ash Burlaczenko

Reputation: 25435

I guess you should be using the variable not a string literal. Try

using (OleDbConnection conn = new OleDbConnection(PayrollSystem_DBConnectionString))

That is if PayrollSystem_DBConnectionString is a string variable containing a connection string value.

Upvotes: 0

Related Questions