您好:
參考下方網址
https://dotblogs.com.tw/dennismao/2012/11/13/82906
我有試過該帳密,可以連線,也用 udl可以連線
但就會出現
System.Data.SqlClient.SqlException: '使用者 'sa,Password=123456789' 的登入失敗。'
請問,這有哪一方是可以除錯嗎?
謝謝!
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace m01.Models
{
public class DBManager
{
private readonly string ConnStr = "Data Source=127.0.0.1;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa,Password=123456789";
//const string db63_PTERP = "Data Source=127.0.0.1\\SQL2005;Initial Catalog=PT_ERP;Persist Security Info=True;User ID = sa; Password=12345";
public List<Card> GetCards()
{
List<Card> cards = new List<Card>();
SqlConnection sqlConnection = new SqlConnection(ConnStr);
SqlCommand sqlCommand = new SqlCommand("SELECT * FROM card");
sqlCommand.Connection = sqlConnection;
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Card card = new Card
{
ID = reader.GetInt32(reader.GetOrdinal("id")),
Char_name = reader.GetString(reader.GetOrdinal("char_name")),
Card_name = reader.GetString(reader.GetOrdinal("card_name")),
Card_level = reader.GetString(reader.GetOrdinal("card_level")),
};
cards.Add(card);
}
}
else
{
Console.WriteLine("資料庫為空!");
}
sqlConnection.Close();
return cards;
}
}//--CALSS
"Server=伺服器位置;Database=資料庫;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=帳號;Password=密碼"
比方
"Server=.\SQLExpress;Database=Northwind;Trusted_Connection=True;MultipleActiveResultSets=true"
或
"Server=.;Database=Northwind;Trusted_Connection=True;MultipleActiveResultSets=true"
本機若裝的是SQL Server 2019
打開SQLServerManager15.msc跟services.msc做確認
確認現在實體指定的是指向到本機預設MSSQLSERVER而非SQLEXPRESS
若是預設的MSSQLSERVER
可以直接一個點.
若是SQLEXPRESS
則要寫.\SQLExpress
預設在安裝SQL Server時候若沒有去特別設定額外的實體名稱
則默認實體名稱會是., (local)或者machine name跟ip address,當然在服務中默認捨麼都沒有改的情況下會顯示MSSQLSERVER
Trusted_Connection=True
信任目前登入帳號登入資料庫。
MultipleActiveResultSets=true
允許在單一次DB連線中可執行多個批次作業。