(C#/ .Net Framework4.0 / VS2017)。 用sqlcon expressconnection数据库制作了一个C#Windows窗体,但是却不确定如何为其他客户端创建安装程序。
我制作了一个Windows窗体应用程序,其中带有sqlconnection数据库。我使用高级安装程序创建了一个安装程序,因此我可以轻松地将.mdf和.idf文件放在先决条件中。
将连接字符串添加为:
public static class DAL
{
public static DataTable ExecSP(string spName, List<SqlParameter> sqlParams = null)
{
string strConnect = "Server=PC\\SQLEXPRESS;Database=MyLoginApp;Trusted_Connection=True;";
SqlConnection conn = new SqlConnection();
DataTable dt = new DataTable();
try
{
//Connect to the database
conn = new SqlConnection(strConnect);
conn.Open();
//Build an sql command / query
SqlCommand cmd = new SqlCommand(spName, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(sqlParams.ToArray());
//Execute command
SqlCommand command = conn.CreateCommand();
SqlDataReader dr = cmd.ExecuteReader();
//fill datatable with the results
dt.Load(dr);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//No matter what happends this will run
conn.Close();
}
return dt;
}
}
当它尝试执行以下代码时:
private void btnLogin_Click(object sender, EventArgs e)
{
List<SqlParameter> sqlParams = new List<SqlParameter>();
sqlParams.Add(new SqlParameter("Username", TxtUsername.Text));
sqlParams.Add(new SqlParameter("Password", txtPassword.Text));
DataTable dtLoginResults = DAL.ExecSP("ValidateLogin", sqlParams);
string eUser;
string ePass;
eUser = TxtUsername.Text;
ePass = txtPassword.Text;
if (dtLoginResults.Rows.Count == 1)
{
//We know login is valid
string user = dtLoginResults.Rows[0]["Username"].ToString();
MessageBox.Show(user + " Berhasil Masuk!");
this.Hide();
ListMeja lm = new ListMeja();
lm.ShowDialog();
}
else
{
//invalid login
MessageBox.Show("Password Salah");
}
}
在运行.exe程序后在其他客户端中获取错误弹出窗口
您的应用程序中发生了未处理的异常。如果单击“继续”,则应用程序将忽略此错误并尝试继续。建立与SQL Server的连接时发生与网络相关或特定于实例的错误。该服务器不可访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26-指定服务器/实例时出错)。
这里我做错了什么?
答案 0 :(得分:0)
好吧..这就是解决方法
SqlConnection con = new SqlConnection(@"Data Source = .\SQLEXPRESS;" +
@"AttachDbFilename=|DataDirectory|\MyLoginApp.mdf;Integrated Security = True;User Instance=True");
private void Form1_Load(object sender, EventArgs e)
答案 1 :(得分:-1)
请尝试从您的系统将SQL Server与SSMS连接。
成功登录后,请根据“已连接SSMS”编辑您的string strConnect = "Server=PC\\SQLEXPRESS;Database=MyLoginApp;Trusted_Connection=True;";
连接字符串。