我已经完成了构建应用程序。
我列表中的最后一件事是将SQL连接字符串放在一个文件中,而不是硬编码(这样用户可以根据需要进行编辑)。
连接失败,我从DataContext获得异常。
连接字符串是definitley正确的。唯一改变的是,因为它完全有效,我将连接字符串放在txt文件中而不是硬编码。
BEFORE(我的应用程序连接到数据库正常):
private string conString = "Data Source=HP\\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True";
public LogIn()
{
dc = new MyDataContext(conString);
if (dc.DatabaseExists())
{
InitializeComponent();
}
else
{
MessageBox.Show("There has been an error, please try again. If ther problem persists, call you know who. Error: Can't connect to database! Make sure the network is all good (connection to ADMIN PC)" /*+ e.ToString()*/);
}
}
现在(不工作):
private string conString;
public LogIn()
{
try
{
ConnectionString.globalConString = System.IO.File.ReadAllText("connString.txt").ToString();
this.conString = ConnectionString.globalConString;
}
catch (IOException e)
{
MessageBox.Show("There was an error reading the conn string file.");
return;
}
dc = new MyDataContext(conString);
if (dc.DatabaseExists())
{
InitializeComponent();
}
else
{
MessageBox.Show("There has been an error, please try again. If ther problem persists, call you know who. Error: Can't connect to database! Make sure the network is all good (connection to ADMIN PC)" /*+ e.ToString()*/);
}
}
txt文件只包含:
Data Source=HP\\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True
文件位于正确的位置,应用程序可以读取它(我已使用MessageBox.Show()输出字符串。)
我能想到的是,字符串实际上并不是字符串,实际上是一些奇怪的格式?我不知道。
BTW,尝试连接的位抛出异常(不是通过文件读取位 - 代码读取文件,但DataContext不喜欢传递给它的字符串)。任何想法??
由于
答案 0 :(得分:0)
您不需要在文本文件中转义反斜杠,只能在代码中转义。该文件应包含:
Data Source=HP\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True
答案 1 :(得分:0)
尝试在\\
之后删除双HP
:
Data Source=HP\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True
在定义C#字符串时,双反斜杠是有效的,因为你需要转义反斜杠字符,但是当从文件中读取时,它会被视为两个反斜杠字符。
答案 2 :(得分:0)
你不需要把双反斜杠试试
Data Source=HP\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True