Tag: ado.net

在插入SQL Server之前检查重复条目

我只想在SQL Server数据库中插入一些条目。 但我需要在插入之前检查。 关键是该表包含两列id和name 。 如果条目与SQL Server数据库中的条目完全相同,则显示的代码应检查两列并阻止插入条目。 这意味着两列数据表与要插入的两个条目相同。 我检查了论坛但找不到任何有用的解决方案。 private void button4_Click(object sender, EventArgs e) { try { objConnection.Open(); string query = “INSERT INTO TutorTable(Tid, Tname) VALUES(N'” + tidTextBox.Text + “‘,'” + tnameTextBox.Text + “‘)”; SqlDataAdapter SDA = new SqlDataAdapter(query, objConnection); SDA.SelectCommand.ExecuteNonQuery(); objConnection.Close(); MessageBox.Show(“ok!”); } catch(Exception ex) { MessageBox.Show(“error”); } objConnection.Close(); }

如何在ADO.NET项目的代码中存储大型查询

我正在开发一个Web项目,其数据访问层基于ADO.NET(用于最快的执行)。 项目中有一些非常大的SQL查询,这些查询是用C#代码内联编写的。 我想知道我是否可以更优雅地移动这些查询以减少一些混乱,但我不确定可以使用什么方法。 我知道资源文件,但这些不能在这里使用,因为一些查询是参数化的。 语言:C#

使用LINQ to Entities将多个记录插入表的正确方法

正如我们许多人所做的那样,我设置了一个简单的循环来从数据库添加多个记录。 一个典型的例子是这样的: 方法一: // A list of product prices List prices = new List { 1, 2, 3 }; NorthwindEntities NWEntities = new NorthwindEntities(); foreach (int price in prices) { Product newProduct = new Product(); newProduct.Price = price; NWEntities.Products.AddObject(newProduct); } NWEntities.SaveChanges(); 然而,当我第一次设置循环时,我直观地写道: 方法二: Product newProduct = new Product(); foreach (int price in prices) { newProduct.Price […]

使用Ado.net阅读Ms Access

我在C#中读取数据库(Ms Access)。 我正在使用Ado.net进行连接。 这个数据库有很多表(大约100个),每个表有大约50列和500行。 每个字段包含不同的数据类型(整数,字符串,布尔)。 我要做的是我必须将选定的表和字段转换为二进制格式。 经过一些文献调查后,我计划使用’DataReader’读取数据,因为我只需要为二进制转换读取变量。 我的问题是 在C#编程方面应该是什么样的数据结构? 说如果我为所有表创建单独的类并定义成员变量和方法,我怎样才能使它更有效? 因为我已经提到有100个表和50个字段,实际上我不需要选择所有字段(我只需要选择所需的字段)。 我不想像它那样硬编码(例如) SELECT BusinessEntityID, LoginID, NationalIDNumber from table1Name 因为我必须遍历选定的表和我的代码中提到的选定字段。 由于我对SQL有点新意,能不能提供一些提示? 换句话说,如果我问如何使用表和字段的变量使选择查询有效(如果这个问题有任何问题,请纠正我) 更新 下面提到的SQL Server SELECT INTO @variable?

实体类型不是当前上下文的模型的一部分

大段引用 我现在已经解决了这个问题几天了。 我正在尝试使用Visual Studio 2010 MVC2 EF 6.0创建数据库连接。 我可以使用服务器资源管理器连接到数据库。 这是我到目前为止所做的: 创建了一个Model:ModelEntities.edmx(连接到SQL Server DB) 2.为我正在尝试访问的表创建了一个Model:Table.cs(包含所有公共成员) public class Quickfix { public int FIX_ID { get; set; } public string NAME { get; set; } public string TYPE { get; set; } public string DESCRIPTION { get; set; } } 创建了一个DAL文件夹并将其上下文添加到其中:(ModelEntitesContext.cs) 使用ServiceDesk_Solution.Models; namespace ServiceDesk_Solution.DAL { public class ModelEntitiesContext […]

为数据表中的计算列定义DateDiff

我有DateTimeExpired列,我想创建另一个名为“Expired”的列,根据到期日期显示“Yes”或“No” – 如果日期已经过,则显示“Yes”。 我写了这个: DataColumn colExpirationDate = new DataColumn(“DateTimeExpired”, typeof(DateTime)); DataColumn colExpired = new DataColumn(“Expired”, typeof(string), “IIF(DateDiff(DateTimeExpired, date())>= 0,’No’,’Yes’)”); 但我得到一个exception“该表达式包含未定义的函数调用DateDiff()。” (请注意,我总是希望得到这一行,无论它是否已经过期) 如何将列的文本设置为正确的forms?

带有Firebird客户端的.NET控制台应用程序在程序结束时崩溃

这是一个朋友的小项目,其目标是从给定的firebird数据库文件中读取数据并将其放入MS Office 2010模板中……因此Firebird作为数据库后端和.NET 4.x项目类型办公室的东西是给定的堆栈。 我写了一个小的(控制台)测试应用程序来与firebird嵌入式数据库客户端取得联系,并且已经有了我没有摆脱的第一个问题。 我的守则如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using FirebirdSql.Data.FirebirdClient; namespace TestFirebirdConnection { class Program { static void Main(string[] args) { // Set the ServerType to 1 for connect to the embedded server string connectionString = “User=sysdba;” + “Password=******;” + “Database=C:\\…\\…\\…\\PDATA.FDB;” + “ServerType=1;” + “Charset=NONE;”; try { FbConnection dbConnection […]

检查表是否存在在SQLite中保持连接打开

所以我有一个方法可以检查数据库中是否存在一个表,其定义如下: internal override bool TableExists(string tableName) { bool tableExists = false; // Check the Tables schema and see if the table exists using (SQLiteConnection conn = (SQLiteConnection) CreateConnection()) { conn.Open(); DataRow[] rows = conn.GetSchema(“Tables”).Select(string.Format(“Table_Name = ‘{0}'”, tableName)); tableExists = (rows.Length > 0); } // Actually called elsewhere in the code, just here for testing. File.Delete(DatabaseEnvironmentInfo.GetPrimaryDataFile(DatabaseName)); […]

将.NET数据表传递给MATLAB

我正在为Matlab组件构建一个接口层,该组件用于分析由我也在构建的单独.NET应用程序维护的数据。 我正在尝试将.NET数据表序列化为数值数组,以传递给MATLAB组件(作为更通用的序列化例程的一部分)。 到目前为止,我已经相当成功地传递了数值数据表,但是在尝试添加数据类型DateTime列时遇到了麻烦。 我到目前为止所做的是将DataTable的值填充到双数组中,因为MATLAB只关心双精度,然后直接转换为MWNumericArray ,它本质上是一个矩阵。 这是当前的代码; else if (sourceType == typeof(DataTable)) { DataTable dtSource = source as DataTable; var rowIdentifiers = new string[dtSource.Rows.Count]; // I know this looks silly but we need the index of each item // in the string array as the actual value in the array as well for (int i = […]

在C#中从返回的DataRow开始使用类型的推荐方法是什么?

循环遍历DataRow并遇到类型等 DataRow dr; dr[“someString”] dr[“someInteger”] dr[“somedata”] 将它们纳入相应数据类型的最佳方法是什么? dr [“foo”]只是一个通用对象。 另外,这些是否可以轻松转换为可空类型? dr [“someInteger”]可能为null。