C#中本地数据库的连接字符串

时间:2018-10-07 17:54:13

标签: c# .net

也许是重复的,但是我用谷歌搜索却没有找到答案。

我通过.net开发了一个程序,该程序具有在我的计算机上可以很好运行的本地数据库(Express),但是当我创建设置和安装时,它无法插入或更新,例如在{{1 }}我有

Delete()
try { } catch { } 文件中的

总是转到exe部分,我不知道为什么:((

这是我的连接字符串:

catch{}

这是我的方法之一,例如:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;Connect Timeout=30

必须说我将private Boolean Delete(int id) { //String conString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Parnian\\documents\\visual studio 2017\\Projects\\Bank\\Bank\\Database.mdf;Integrated Security=True"; SqlConnection sql = new SqlConnection(Connection); String sqll = "Delete FROM TblBank WHERE Id =@id "; try { sql.Open(); SqlCommand cmd = new SqlCommand(sqll, sql); cmd.Parameters.AddWithValue("id", id); cmd.CommandType = System.Data.CommandType.Text; cmd.ExecuteNonQuery(); sql.Close(); return true; } catch (Exception ex) { MessageBoxEx.Show("have some problem", "wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } .mdf文件放入安装文件夹,并通过Visual Studio Installer进行安装

3 个答案:

答案 0 :(得分:2)

尝试一下

private bool Delete(int id)
{
    string connString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Parnian\\documents\\visual studio 2017\\Projects\\Bank\\Bank\\Database.mdf;Integrated Security=True";
    SqlConnection sqlConn = new SqlConnection(connString);
    String sql = "Delete FROM TblBank WHERE  Id =@id ";
    try
    {
        sqlConn.Open();
        SqlCommand cmd = new SqlCommand(sql, sqlConn);
        cmd.Parameters.AddWithValue("id", id);
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.ExecuteNonQuery();
        sql.Close();
        return true;
    }
    catch (Exception ex)
    {
        MessageBoxEx.Show(ex.Message, "wrong", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return false;
    }
}

这样您就可以查看错误是什么。目前,您只是说ex包含调试问题所需的一切时出了问题。

希望这会有所帮助。

(还有一些要重构的东西,例如将连接包装在using语句中。)

答案 1 :(得分:1)

@Parnian 应该需要在系统中安装本地数据库。 1.单击服务器对象资源管理器,然后单击Localdb服务器时,将从属性中获取正确的连接字符串。

enter code here  static void Main(string[] args)
    {
        TestConncetion testConncetion = new TestConncetion(Delete);//here I used delegate

        WriteLine($"My connection string is working Fine ,result is {testConncetion(1)}");
    }

    private static bool Delete(int id)
    {
        string Connection = @"Data Source=(localdb)\ProjectsV13;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
        //String conString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Parnian\\documents\\visual studio 2017\\Projects\\Bank\\Bank\\Database.mdf;Integrated Security=True";
        SqlConnection sql = new SqlConnection(Connection);
        string sqll = "Delete FROM TblBank WHERE  Id =@id ";
        try
        {
            sql.Open();
            SqlCommand cmd = new SqlCommand(sqll, sql);
            cmd.Parameters.AddWithValue("id", id);
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.ExecuteNonQuery();
            sql.Close();
            return true;
        }
        catch (Exception ex)
        {
            WriteLine("have some problem", "wrong", ex.Message);
            return false;
        }
    }

答案 2 :(得分:0)

问题的原因非常简单。您的情况可能有两种情况。它们如下:

  1. 您尝试运行该应用程序的计算机没有正确版本的sql server。

    解决方案::在这种情况下,您必须找出创建数据库的SQL Server版本。然后,您必须将该SQL Server版本包含在setup.exe程序包中。这样,当setup.exe执行适当的sql服务器时,还会使用您的应用程序进行设置。

  2. 您尝试设置应用程序的计算机具有正确的sql版本,但仍然出现错误。

    解决方案:首先删除现有数据库,然后从解决方案资源管理器中创建新数据库。然后使用此特定的connection string given below

    SqlConnection conn =新 SqlConnection(global :: ProjectName。Properties.Settings.Default。ProjectConnectionString);

将数据库连接到解决方案后,可以在ProjectConnectionString文件中找到

App.config

希望这会有所帮助。随时在评论中询问是否需要。

相关问题