使用ef框架连接数据库,本来可以,但修改了数据库表后连不上了,也没报错

使用ef框架连接数据库,本来可以,但修改了数据库表后连不上了,也没报错,第1张

更新的应该是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连接现有数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10169037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存