c# - C#Windows Form应用程序中的连接字符串错误

标签 c# sql error-handling

我是C#的新手,目前正在学习Windows窗体。连接到本地数据库时,出现关于连接字符串的错误。我收到的错误是Sql在以下行中-

public Form1()
    {
        InitializeComponent();
        con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="c: \users\devesh lashkari\documents\visual studio 2015\Projects\DemoApp1.0\DemoApp1.0\DemoAppDataBase.mdf";Integrated Security=True");
    }

在这里,文件名出现错误。我已经附上了一个截图,以便于检测。

enter image description here

最佳答案

您有两种选择:

逃避一切

尝试以下方法:

    con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;" +
                            "AttachDbFilename=\"c:\\users\\devesh lashkari\\documents\\visual studio 2015\\Projects\\DemoApp1.0\DemoApp1.0\\DemoAppDataBase.mdf\";" +
                            "Integrated Security=True");

双引号

...或者如果您想使用@,则需要使用GalacticCowboy(如下)所述的双引号:
    con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""c:\users\devesh lashkari\documents\visual studio 2015\Projects\DemoApp1.0\DemoApp1.0\DemoAppDataBase.mdf"";Integrated Security=True");

注意,与其说是SQL错误,不如说是C#转义错误。您需要在路径中加引号,以便不能使用@。我将其分为多行以使其更易于阅读。

另外在c:后还有一个空格

感谢GalacticCowboy的提示和发现我的愚蠢。 ;)

关于c# - C#Windows Form应用程序中的连接字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367067/

相关文章:

c# - 使用不同名称的 LINQ to Entities 表前 100

c# - 使用数组或泛型时 TestCase 在 NUnit 中的显示名称

c# - WPF MVVM Binding Checkbox.IsChecked 到 Dictionary<string, bool> 中的命名项

sql - SELECT COUNT(*) - 如果没有匹配的行,则返回 0 和分组字段

php - 如何获取自上次在 PHP 中编辑 MySQL 数据库以来的时间

混帐 |是什么导致git错误: 'fatal: Unable to create '/index. lock': Permission denied' error?

javascript - 使用异步/等待时在 Express 中捕获未处理的异常

c# - 使用 LINQ 将类的字段复制到字典列表中

php - 检查返回数组中是否有更多引用递归的 MYSQL 查询是什么?

error-handling - PHP 错误处理 : die() Vs trigger_error() Vs throw Exception