我创建了一个带有基础数据库的应用程序,该数据库需要作为exe放在CD上。 但是,当我在连接字符串中使用数据库的完整文件路径时,某些SQL查询仅对数据库有效。

例如,我有一个创建新用户表单,该表单应将新用户插入数据库。 当我使用连接字符串1而不是连接字符串2时,此方法有效

这是不理想的,因为当其他人在另一台PC上使用该应用程序时,我只希望该应用程序在当前目录(数据库应位于的目录)中查找。

我尝试了各种解决方案,但没有成功。

有任何想法吗?

非常感激

连接字符串1

string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Nick\Documents\Visual Studio 2010\Projects\DebenhamsProjectOffice V.01\DebenhamsProjectOffice V.01\DebenhamsProjectOfficeDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

连接字符串2

string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DebenhamsProjectOfficeDatabase.mdf;Integrated Security=True;User Instance=True";

创建新的用户表单代码

// Create User Click Event
    private void btnCreateUser_Click(object sender, EventArgs e)
    {
        string username = txtUsername.Text;
        string password = txtPassword.Text;
        string sqlquery;

        if (username.Length < 5 || password.Length < 5)
        {
            MessageBox.Show("Username & Password must be more than 5 characters");
        }
        else
        {
            string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Nick\Documents\Visual Studio 2010\Projects\DebenhamsProjectOffice V.01\DebenhamsProjectOffice V.01\DebenhamsProjectOfficeDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            SqlConnection cn = new SqlConnection(connection);
            cn.Open();
            sqlquery = "INSERT INTO Users (Username, Password) VALUES ('" + username + "','" + password + "')";
            try
            {
                SqlCommand command = new SqlCommand(sqlquery, cn);
                command.ExecuteNonQuery();
                MessageBox.Show("User Added");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            txtUsername.Clear();
            txtPassword.Clear();
            cn.Close();
        }
    }

  ask by NickB6 translate from so

本文未有回复,本站智能推荐: