Tag: database

SQLite连接未出现在实体数据模型向导中

我做了什么来得到我的位置:我使用GAC和VS2012选项从http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki安装了程序集。 我现在可以连接到现有的SQLite数据库,或建立连接并创建新的SQLite数据库文件。 此连接将出现在我的服务器资源管理器中,并且工作正常。 我可以从资源管理器中查看此数据库并更改表等。 但是,当我尝试添加新的ADO.NET实体数据模型时,这个已建立的连接将不会出现在可用的数据连接中。 即使我继续进行新连接, System.Data.SQLite数据库文件选项甚至不在选项列表中。 我尝试单独或与SQLite包一起使用NuGet安装实体包。 我已经尝试过不安装它们或仅将Entity模型与前面提到的程序集一起安装,但SQLite的选项不会出现。 经过谷歌搜索和溢出这个令人沮丧的时间,并发现只有一小部分人显示出与我相同的问题,但没有解决方案对我有用,我来找你帮忙。 经过我所有的努力,我怀疑它归结为我的App.config文件。 我看起来如下: 类似的问题: 数据库首先使用system.data.sqlite 1.0.93创建entity framework6.1.1模型 http://sqlite.1065341.n5.nabble.com/Provider-not-showing-up-in-Net-Model-import-wizard-td75306.html 我使用了vs2012 .NET 4.5,SQLite版本1.0.96.0,实体6.1.3 我希望有人能够帮助我。

使用LINQ to SQL读取巨大的表:耗尽内存与慢速分页

我有一个庞大的表,我需要阅读某个订单并计算一些汇总统计数据。 该表已经有正确顺序的聚集索引,因此获取记录本身非常快。 我正在尝试使用LINQ to SQL来简化我需要编写的代码。 问题是我不想将所有对象加载到内存中,因为DataContext似乎保留它们 – 但是尝试分页它们会导致可怕的性能问题。 这是故障。 最初的尝试是这样的: var logs = (from record in dataContext.someTable where [index is appropriate] select record); foreach( linqEntity l in logs ) { // Do stuff with data from l } 这非常快,并且流速很好,但问题是应用程序的内存使用量不断上升。 我的猜测是LINQ to SQL实体被保留在内存中而没有正确处理。 因此, 在创建了大量对象C#时读取内存不足后,我尝试了以下方法。 这似乎是许多人使用的常见Skip / Take范例,具有节省内存的附加function。 请注意,事先创建了_conn ,并为每个查询创建临时数据上下文,从而导致关联的实体被垃圾回收。 int skipAmount = 0; bool finished […]

DataAdapter.Update()不更新数据库

我确信有一个非常简单的原因,这一行不起作用,但它已经避开过去一周,所以我希望别人会注意到我的错。 我这个项目已经工作了几个星期到一个月。 我一直在使用旧的DataAdapter,CommandBuiler等与1个数据库上的一些linq到sql编码的混合,具有多个Windows应用程序表单。 此特定表单使用DataAdapter,Dataset和Command Builder从数据库编辑或删除行。 它一直工作正常,直到我切换计算机。 现在数据集正在更新,但数据库不是。 以下是此表单的完整代码: private void exitToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show(“Exit Cook Book?”, “Exit?”, MessageBoxButtons.OKCancel) == DialogResult.OK) { Application.Exit(); } } private void goBackToolStripMenuItem_Click(object sender, EventArgs e) { AddRecipe goBack = new AddRecipe(); Close(); goBack.Show(); } private void helpToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show(“Scan through the Cook Book to […]

通过System.Data.SQLite和c#多次访问单个SQLite数据库文件

正如我可以从SQLite FAQ中读到的,它支持多个进程读取(SELECT),并且在任何时刻都只支持一个进程编写(INSERT,UPDATE,DELETE)数据库: SQLite使用读取器/写入器锁来控制对数据库的访问。 当任何进程想要写入时,它必须在更新期间锁定整个数据库文件。 但这通常只需要几毫秒。 其他流程只是等待作者完成然后继续他们的业务 我通过c#使用System.Data.SQLite适配器。 有人可以告诉我PLZ,这个过程到底是怎么回事? 这个过程是否会自动运行,编写SQLiteCommand只会等待另一个SQLiteCommand已经在同一个数据库上执行? 或者它可能会抛出exception? 什么样的? 对不起,我发现没有关于这个机制的信息:) 谢谢。 更新: 我发现post说exception会引发一个特定的错误代码 这个陈述是否正确?

C#连接数据库并列出数据库

可能重复: SQL Server查询以查找所有当前数据库名称 我试图弄清楚如何在连接到服务器之后列出数据库而不首先指定数据库。 sqlConnection1 = new SqlConnection(“Server=” + sqlServer + “;Database=” + database + “;User ID=” + userName + “;Password=” + password + “;Trusted_Connection=False;”); 基本上我想要的是最终用户连接到sql server,然后有一个下拉列表,其中填充了他们可以连接和查询的db列表。 想法?

C#SQL SUM值到标签

我目前有一个显示所有项目的DataGridView。 我想在价格列中汇总所有价格,然后在标签“TotalValueLabel”中反映总价。 我的陈述有什么问题? string query = “SELECT SUM (Price) FROM Bill”; OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn); DataTable source = new DataTable(); dAdapter.Fill(source); TotalValueLabel.Text = source.ToString();

使用OLE-DB从数据库中读取附加文件

我正在尝试使用C#读取Microsoft Access数据库。 我正在使用OLE-DB类。 问题是这段代码 OleDbDataReader reader = Command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader.GetFieldType(0) + “\t” + reader.GetFieldType(1) + “\t” + reader.GetFieldType(2) + “\t” + reader.GetFieldType(3) + “\t” + reader.GetFieldType(4) + “\t” + reader.GetFieldType(5)); } 告诉我,第5个字段来自数据类型字符串。 但它是一个附件。 当我试图读取这个字符串时,它是空的。 System.Int32 System.String System.String System.Int32 System.DateTime System.String 有没有办法从数据库中读取附件?

关闭应用程序时,将删除数据库中的所有数据

创建本地数据库文件然后将应用程序连接到它的正确方法是什么? 即使您更改项目文件夹的位置,我希望它能够工作。 知道我做的是:项目 – >添加新项目 – >基于服务的数据库,我创建一个,然后我去数据 – >添加新数据源,我添加创建的数据库,我得到连接字符串。 好的,一切都很好,我可以按照我的意愿连接到它但是当我关闭应用程序时(并非总是),我的所有数据都会从数据库中删除。 例如,这段代码: SqlConnection c = new SqlConnection(@”DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True”); c.Open(); SqlCommand cmd; cmd = new SqlCommand(“CREATE TABLE Persons (id int primary key, nume char(20), age int)”); cmd.ExecuteNonQuery(); cmd = new SqlCommand(“INSERT INTO Persons VALUES (@id, @name, @age)”, c); cmd.Parameters.AddWithValue(“@id”, 1); cmd.Parameters.AddWithValue(“@name”, “Catalin”); cmd.Parameters.AddWithValue(“@age”, 20); cmd.ExecuteNonQuery(); 我第一次运行它来创建表并向其添加一个项目,然后,如果我第二次运行它而没有sqlcommand来创建表人员,它告诉我没有Persons对象,但是如果我运行第二次使用相同代码的项目,它告诉我已经有一个Persons对象… […]

LinqToSQL足够强大吗? 是不是更强大但同样流畅的界面易于构建?

在上一个问题中,我询问ORM库是否是次优解决方案并获得了很多很好的反馈。 正如我对这个问题的进一步思考,我得出的结论是LinqToSQL(现在)的主要好处和LinqToEntities(未来)的承诺在于它们能够减少程序代码和SQL之间的“不匹配”。 鉴于LinqToSQL作为一种完整的数据查询语言的局限性,我不倾向于认为它的优势远不止于此,但我想了解其他人的意见。 首先,程序代码和SQL之间的“不匹配”是什么意思? 如果您曾经开发过数据库应用程序,那么您可能已经熟悉(并且厌倦)与数据库交互所需的步骤:设置所有参数,输入SQL命令,然后将预期结果手动转换回变量或代码中使用的实例。 通过使用“流畅”接口,lambda表达式,扩展方法等,LinqToSql使这变得更加容易。最终结果是,很容易将本机C#标量类型推送到数据检索调用中,并且很容易自动生成本机C#类实例。 以MS网站为例: var q = from c in db.Customers where c.City == “London” select c; foreach (var cust in q) Console.WriteLine(“id = {0}, City = {1}”,cust.CustomerID, cust.City); 很酷! 那么问题是什么? 好吧,正如我在顶部链接的文章中指出的那样,存在许多问题。 对我来说最大的一点是,任何能够在SQL方面做到最低限度的人都会立即遇到障碍。 不仅仅是因为SQL的替代品而创建的许多构造都不熟悉甚至是笨拙的(Group By?我们在LinqToSql中谈论丑陋 )。 更大的问题是有许多常见的构造本身不受支持(例如DateDiff)。 充其量,您可以将Linq的“逃出”并将SQL代码提交到Linq调用流中。 那么,简单地在C#(或VB)中嵌入SQL是不是更好,这种方式允许您自由地声明SQL,但是这也可以让您轻松参数嵌入并自动转换为本机类? 例如,如果我们在一个类中只实现六个函数,我们可以编写类似这样的东西(其中qry是我们的查询类的一个实例): var ListOfEnrollees = qry.Command(“Select b.FirstName, b.LastName, b.ID From ClassEnroll a inner join […]

持久安全信息Property = true且Persist Security Info Property = false

对于属性: Persist Security Info=true 和 Persist Security Info=false 你能告诉我他们之间有什么区别吗?如果我不把它放在我的连接中会发生什么? connect.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:/Users/Nourah/Downloads /Phase3/Salary.accdb; Persist Security Info=False;”;