JAg får detta felmeddelande när jag försöker ansluta till min databas från en .NET 2.0-sida och databasen är SQL 2005. Vad kan vara fel? Din connectionstring ser ut att sakna några ;, testa följande: Samt att din SQL Server inte tillåter inloggning med Måste be om hjälp med detta i alla fall, nu fungerar i alla fall anslutningen. Jag försöker logga in användare med detta. Det fungerade förrut när jag hårdkodade in ID, men det vill inte heller fungera längre. Det glömde jag visst skriva:) Om du har fel uppgifter borde väl inte proceduren returnera någon post? Tycker att det borde bli såhär:Connection-problem
Login failed for user ''. The user is not associated with a trusted SQL Server connection.Now closing the connection to the database.
Min anslutningsträng har jag skriv i web.config och den ser ut så här, jag har ändrat lösen och sånt, men de är rätt:
<code>
<connectionStrings>
<add name="minAnslutning" connectionString="Data Source=localhost;Initial
Catalog=DATABASEN
user id=ANVÄNDARNAMN password=LÖSENORD" />
</connectionStrings>
</code>
PÅ aspx-sidan har jag följande kod.
<code>
protected void Page_Load(object sender, System.EventArgs e)
{
// Creating the connection object...
string connectionString = WebConfigurationManager.ConnectionStrings["minAnslutning"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
try
{
con.Open();
Label1.Text = "<b>Server Version:</b> " + con.ServerVersion;
Label1.Text +="<br /><b>The connection is:</b> " + con.State.ToString();
}
catch (Exception err)
{
Label1.Text = "Error when reading from the database!<br />";
Label1.Text += err.Message;
}
finally
{
con.Close();
Label1.Text += "Now closing the connection to the database.<br />";
Label1.Text += "<br /><b>The connection is:</b> " + con.State.ToString();
}
}
</code>
---------------------------------------EDIT--------------------------------
Jag var trött när jag skrev inlägget, jag hade ju missat " ; " semikolonen på ett par ställen.Sv: Connection-problem
Initial Catalog=DATABASEN;Data Source=localhost;User Id=ANVÄNDARNAMN;Password=LÖSENORD;
/JohanSv:Connection-problem
User ID
och
Password
Du måste skriva
Integrated Security=SSPI
eller slå på Mixed mode i SQL server, så den tillåter SQL Logins
/mickeSv: Connection-problem
<code>
protected void btnLogIn_Click(object sender, EventArgs e)
{
string x = Request.Form["txtPassword"];
string y = Request.Form["txtUserName"];
// Creating the connection object...
string connectionString = WebConfigurationManager.ConnectionStrings["NAMNPÅANSLUTNING"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("logMeIn", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@passWord", SqlDbType.NVarChar, 20));
cmd.Parameters["@passWord"].Value = x;
cmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.NVarChar, 20));
cmd.Parameters["@userName"].Value = y;
try
{
con.Open();
SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
int myID = (int)Reader["CustomerID"];
Reader.Read();
if (myID > 1)
{
lblError.Visible = true;
lblError.Text = "Du har angett ett felaktigt användarnamn/lösenord.";
}
else
{
Session["custID"] = myID;
string myName = (string)Reader["Fname"];
Reader.Close();
lblWelcome.Visible = true;
lblWelcome.Text = "Välkommen " + myName + ", du är inloggad, ditt ID är: " + myID + ".<br />";
lblWelcome.Text += "För att förenkla navigering och användarvänlighet kan du iinte se inloggningen när du redan är inloggad.";
}
}
catch (Exception err)
{
lblError.Text = "Det uppstod ett fel när vi läste från databasen.<br />";
lblError.Text += "Var vänlig försök igen senare.";
}
finally
{
// Closing the connection...
con.Close();
}
}
</code>
Min lagrade procedur ser ut så här. Den fungerar när jag kör den i SQL-server.
<code>
ALTER PROCEDURE [dbo].[logMeIn]
@passWord varchar(20),
@userName varchar(20)
AS SELECT CustomerID, Fname
FROM Customer
WHERE Password = @passWord AND Username = @userName
</code>Sv: Connection-problem
Jag kan logga in, men jag får inte nåt felmeddelande om jag anger fel uppfigter, men blir inte inloggad. Det är här det är fel nånstans tror jag.
<code>
con.Open();
SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
Reader.Read();
int myID = (int)Reader["CustomerID"];
if(myID < 1)
{
lblError.Visible = true;
lblError.Text = "Du har angett ett felaktigt användarnamn/lösenord.";
}
</code>
Jag har försökt att vända på det också, jag loggas in men får inte felmeddelandet om jag skriver fel.
<code>
con.Open();
SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
Reader.Read();
int myID = (int)Reader["CustomerID"];
if(myID > 0)
{
Session["custID"] = myID;
string myName = (string)Reader["Fname"];
Reader.Close();
lblWelcome.Visible = true;
lblWelcome.Text = "Välkommen " + myName + ", du är inloggad.<br />";
}
else
{
lblError.Visible = true;
lblError.Text = "Du har angett ett felaktigt användarnamn/lösenord.";
}
</code>Sv:Connection-problem
con.Open();
SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
if(Reader.Read())
{
Session["custID"] = (int)Reader["CustomerID"];
string myName = (string)Reader["Fname"];
Reader.Close();
lblWelcome.Visible = true;
lblWelcome.Text = "Välkommen " + myName + ", du är inloggad.<br />";
}
else
{
lblError.Visible = true;
lblError.Text = "Du har angett ett felaktigt användarnamn/lösenord.";
}
/Johan