首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到本地数据库

连接到本地数据库
EN

Stack Overflow用户
提问于 2017-04-24 21:16:16
回答 2查看 90关注 0票数 0

我试图通过mdf文件创建本地数据库,如下所示:

代码语言:javascript
复制
scon = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\articles.mdf; Integrated Security=True");
scon.Open();
scmd = new SqlCommand("Insert INTO articles(url) VALUES(@url)");
scmd.Parameters.AddWithValue("@url", "http://google.com");
scmd.ExecuteNonQuery();

我的mdf文件在根文件夹中,也在调试文件夹中。当我运行以下代码时,会看到一个错误,说明如下:

我不能使用完整的连接路径,因为它是一个带有空格的长url,下面是我的文件结构:

我的数据库存在:

我如何修复这个问题以便连接到我的数据库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-24 21:24:21

将连接对象传递给SqlCommand构造函数

代码语言:javascript
复制
scmd = new SqlCommand("Insert INTO articles(url) VALUES(@url)", scon);

连接字符串很好,错误消息通知您,如果不知道数据库,就不可能执行命令。SqlConnection包含此信息,您需要将其传递给您的命令。另一种可能是通过

代码语言:javascript
复制
scmd.Connection = scon;

但是,就我个人而言,我更喜欢在构造函数中传递该信息。

最终但非常重要的注意事项

SqlConnection和SqlCommand是一次性对象。你应该经常处理这类物品。using语句是正确的方法。

代码语言:javascript
复制
using(scon = new SqlConnection(....))
using(scmd = new SqlCommand("Insert INTO articles(url) VALUES(@url)",scon))
{
   scon.Open();
   scmd.Parameters.AddWithValue("@url", "http://google.com");
   scmd.ExecuteNonQuery();
}
票数 3
EN

Stack Overflow用户

发布于 2017-04-24 22:49:43

您的代码的问题是您有一个命令和一个连接,但是在命令使用此连接对象之前没有任何东西可以使用.您可以使用SqlCommand构造函数来执行此操作。

代码语言:javascript
复制
scmd = new SqlCommand("Insert INTO articles(url) VALUES(@url)",scon)

或者使用SqlCommand类的Connection属性,如下所示

代码语言:javascript
复制
scmd.Connection = scon  

考虑将Using添加到您的SQL连接中.否则,您将不得不通过调用scon.Close();手动关闭连接,如果您没有执行这两种操作,那么如果您试图在连接已经打开时再次打开连接,您将遇到异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43597846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档