更新的应该是debug下面的mdf,而VS每次编译时候会自动把项目里的mdf复制到debug下
编译好后,不用vs,直接运行debug下的exe,然后 *** 作更新数据库,就应该改变了。
如果你再次运行exe,就应该和上次关闭时的结果一样
下载systemdatasqlite安装包,在systemdatasqliteorg上下载对应NET Framework xx版本的安装包。安装systemdatasqlite,按照提示一步一步执行即可。
下载SQLiteStudio,直接运行exe文件。创建数据库,以及 *** 作数据表等等。
环境搭建好后就开始创建C#工程了,这里举例创建了一个Winform工程。在工程里引入systemdatasqlitedll。注意:引用窗口打开后选择浏览,在安装目录下找到dll。默认安装路径是 C:\Program Files\SystemDataSQLite\2010\bin。如果不是使用VS2010,路径会不同
除了引用systemdatasqlite以外,还需要把SQLiteInteropdll复制到程序根目录。
5
至此C# *** 作SQLite的开发环境就搭建好了。
6
异常解决:在实际使用中遇到了Unable to open the database file异常。查找了很久原因,排除了目录读写权限,连接字符串中增加Pooling=True;Journal Mode=Off;均为解决问题。后来发现我使用的是属性get来生产连接字符串,改为静态成员变量就没有问题了。这个问题还和 *** 作系统有关,在win7上运行没有问题,在XP和2003上运行才会出现这个问题。
查了一下,可以用命令行生成相应的文件:
Scaffold-DbContext "Server=\SQLExpress;Database=SchoolDB;Trusted_Connection=True;" MicrosoftEntityFrameworkCoreSqlServer -OutputDir Models
连接字符串放json里面
"ConnectionStrings": {
"MbkDbConstr": "Data Source=(localdb)\\MBK;Database=MbkTest;"
}
参考资料:
网页链接
自定义的类 不能使用using。需要释放或者关闭的可以用using 比如
using(SqlConnection conn=new SqlConnection()){}
你只能
DashengDbContext context = new DashengDbContext();
contenxt方法();
假设是AppSettings节点下
string connectionString=
SystemConfigurationConfigurationManagerAppSettings["RSDbContext"];
或者 直接读取xml文件 即节点add 下的属性name=RSDbContext的
模仿下面的读取xml代码
//using SystemXml;/// <summary>
/// 通过键获取appSettings的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetValueByKey(string key)
{
XmlDocument doc = new XmlDocument();
docLoad(AppDomainCurrentDomainBaseDirectory + "configxml");
XmlNode node = docDocumentElementChildNodes[1];
//找到appSettings节点
foreach (XmlNode childNode in nodeChildNodes)
{
if (childNodeName == "add" && childNodeAttributes["name"] != null && childNodeAttributes["name"]InnerText == key)
{
return childNodeAttributes["connectionString"]InnerText;
}
}
return "";
}
网站链接不到数据库分很多情况?
1你网站服务器和数据库服务器是否可以正常ping通(假设你是分机部署的)
2假设可以ping通,查看防火墙是否允许数据库指定端口的链接(win平台上直接关闭防火墙或则配置准入;类unix平台上直接修改iptab来控制准入,比如添加一条entry允许在1521(oracle)1442(mssqlserver)上的接入 *** 作)
3查看数据库是否正常开启(win上直接查看服务,类unix平台上可以使用ps-ef|grep关键字来查看指定进程是否开启,oracle情况下还需要监听tnslsnr是否开启)
排除以上问题,那就找找网站的问题
1网站最近是否升级,比如更换了数据库的驱动,这是可能之一
2网站的数据库连接应该是从可配置的平面文件中读取用户名和密码,这2个是否错误
3你们的dba是否最近修改了数据库的用户名和密码
4你们的数据库是否被人用类似ddos攻击,就说被人不停的连接连接,撑到数据库支持的上限后,正常连接就无法建立了。
5你们的程序员是不是没有释放连接,或则你们的数据源释放连接和建立的连接的策越有问题。
希望对你有帮助
A、B两个数据库在同一个服务器上?
可以用触发器实现,如果A、B数据库的数据都会变化的话,那么两边都要建立触发器,比如A库a表上建立触发器(增删改都需要,只举插入触发器的例子)
select@字段1=字段1,@字段2=字段2,@主键=主键
frominserted
ifexists(selectfromBdboawhere主键=@主键)
begin
--如果有重复的数据怎么处理?是报错,还是不做任何处理直接return,在这里写语句
end
insertintoBdboa(字段1,字段2)
values(@字段1,@字段2)
如果不在同一台服务器上,用触发器就不太保险,因为如果其中一台服务器出了故障,对表的增删改 *** 作都会出问题,除非你能保证两台服务器都能运行正常,或者可以在很短的时间内排除故障。
以上就是关于使用ef框架连接数据库,本来可以,但修改了数据库表后连不上了,也没报错全部的内容,包括:使用ef框架连接数据库,本来可以,但修改了数据库表后连不上了,也没报错、c#ef能直接 *** 作sqlite数据库的生成吗、请问asp.net core mvc怎么使用ef连接现有数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)