Tag: sql

如何使用SQL查询更新表中的多个行?

我是SQL和C#的新手。 如屏幕截图所示,我想通过仅插入DataGridView2 Qty,Description和Price值来更新Order Details表中的3行(#3号订单)。 我使用Order_Number和DateTime的组合使订单详细信息独特且易于在表格中找到。 我使用了以下代码,但它根据DataGridView2中的第0行更新了3行#3顺序: private void Update_OrderDetails_Click(object sender, EventArgs e) { SqlConnection cn = new SqlConnection(“Data Source=PCNmm-TOSH;Initial Catalog=mydb;Integrated Security=True”); cn.Open(); SqlCommand cm = new SqlCommand(“UPDATE Customer_Order_Details SET Qty = @Qty, Description = @Description, Price = @Price WHERE Order_Number = @OrderNumber and DateTime = @DateTime “); cm.Parameters.Add(“@OrderNumber”, SqlDbType.Int); cm.Parameters[“@OrderNumber”].Value = 3; cm.Parameters.Add(“@DateTime”, SqlDbType.DateTime); cm.Parameters[“@DateTime”].Value […]

Visual Studio 2008(C#)与SQL Compact Edition数据库错误:26

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 validation实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 – 查找指定的服务器/实例时出错) 我已经创建了一个SQL压缩数据库,将其包含在我的应用程序中,并且可以从其他数据库编辑器连接到数据库,但在我的应用程序中我正在尝试 using (SqlConnection con = new SqlConnection(Properties.Settings.Default.DatabaseConnection)) { con.Open(); } 连接字符串是 数据源= | DataDirectory | \ Database.sdf 我很难过,有什么见解吗?

在ASP.Net应用程序中安全地存储(加密)数据

我有一个asp.net应用程序,可以通过互联网使用Web浏览器访问。 它在Web服务器上运行,并与后端数据库进行通信。 一些用户希望使用该应用程序来存储一些私人数据。 这个要求是: 1)只有存储数据的用户才能看到它。 2)开发人员/ dbas不应该能够看到数据。 3)如果Web服务器和数据库服务器受到攻击,则黑客必须无法解密数据。 所以,很明显我将不得不加密这些数据。 如果我加密它会在某个地方有一个密钥,可能是盐/ IV。 问题是我在哪里存储用于执行解密的数据? 如果我将它存储在数据库或Web服务器中,那么开发人员,dba或黑客可以访问它并解密数据。 我认为我理想的解决方案是将私钥放在客户机上,这样他们就完全负责了。 但我不知道如何使用asp.net Web应用程序来解决这个问题。 我相信我可以创建一个也存储私钥(PFX)的证书。 客户公司可以使用组策略将证书部署到其域。 但是,ASP.Net应用程序可以请求Web浏览器向其发送私钥,以便它可以执行解密吗? 解密客户端将是最好的,但除了在JavaScript中创建一些东西,我不知道这是如何可能的。 欢迎任何建议。

Informix内存泄漏

我使用Informix遇到了一个奇怪的问题(具体来说,我使用的是IBM.Data.Informix命名空间,4.10 Client SDK)。 我使用ODBC连接到IBM Informix数据库并遇到内存泄漏问题。 文档相当稀疏,我被锁定使用我目前安装的驱动程序/ SDK。 这是我用于数据库上下文的代码: public class IfxDbContext : IIfxDbContext { private readonly string _connectionString; //private readonly IfxConnection _connection; public IfxDbContext(string connectionString) { _connectionString = connectionString; //IfxConnection conn = new IfxConnection(connectionString) {ConnectionString = connectionString}; //_connection = conn; } public IEnumerable GetItems() { var items = new List(); try { using (IfxConnection conn […]

sql connection.open()exception

我是.net中的新手,我正在使用Windows窗体应用程序。 我正在尝试将我的应用程序连接到基于Visual Studio服务的数据库。 我只是在提交按钮后面编写代码。 private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(“Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\mudasir\\Documents\\Visual Studio 2012\\Projects\\Medical_Store_System\\Medical_Store_System\\MSS_database.mdf;Integrated Security=True”); con.Open(); if (con.State == ConnectionState.Open) { textBox1.Text = “Congrats”; } else textBox1.Text = “Sorry”; con.Close(); } 在con.open(); 我遇到了一个例外情况 “建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。validation实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 – 无法打开与SQL Server的连接)“ 请给我一个简单的答案和解决方案,因为我对这些事情不熟悉。

每个查询的新sql连接?

我正在编写一个与本地sql server通信的服务器应用程序。 每个客户端都需要读取或写入数据库。 拥有一个可以在单个sql连接上排队并执行sql命令的线程安全类会更好吗? 或者我应该为每个命令打开一个新连接? 性能是否重要?

具有自定义格式的C#Generic DateTime.ToString()

使用时: DateTime.ToString().Contains(“2016”) entity framework产生: CAST(DateValue AS nvarchar(max)) LIKE ‘%2016%’ 这使用默认的日期格式“mon dd yyyy hh:miAM(或PM)” 我想用“yyyy-mm-dd hh:mi:ss(24h)”,这可以通过以下方式获得: CONVERT(VARCHAR(max), DateValue, 20) LIKE ‘%2016%’ 我需要帮助将这种格式实现到现有的generics方法。 static Expression<Func> Expr(Expression<Func> source) { return source; } static MethodInfo GetMethod(this LambdaExpression source) { return ((MethodCallExpression)source.Body).Method; } static readonly MethodInfo Object_ToString = Expr((object x) => x.ToString()).GetMethod(); static readonly MethodInfo String_Contains = Expr((string x) => […]

参数超出EF中的db.SaveChanges()范围

我正在开发一个带有Entity Framework的MVC应用程序。 我使用数据库第一种方法,在我的数据库中有一个数字字段: [N15] NUMERIC (1, 1) NULL, 我收到错误的代码是: public ActionResult allsave(VchrViewModel v) { List chklist = this.dt; if (br.vchrbalance(chklist) == true) { trm = v.master; trm.S100 = vt; var n = db.TrMs.Max(x => x.N100); trm.N100 = n + 1; trm.S104 = getmonth(trm.D1.ToString()); trm.S103 = getyear(trm.D1.ToString()); db.TrMs.Add(trm); db.SaveChanges(); seid = 0; var s = this.dt; […]

C#中的条件运算符和返回类型

可能重复: 为什么null需要显式类型转换? 可空类型和三元运算符。 为什么这不起作用? 试图执行以下操作: sqlCmd.Parameters.Add(“@DateCreated”, System.Data.SqlDbType.DateTime).Value = myObject.DateCreated == DateTime.MinValue ? DBNull.Value : myObject.DateCreated; 我收到此错误: 无法确定条件表达式的类型,因为’System.DBNull’和’System.DateTime’之间没有隐式转换 我很明白这个错误,但为什么类型甚至是什么,因为Parameters.Value属于对象类型? 有没有办法完成我想要做的事情?

为什么通过OleDb在Access数据库中调用我的UPDATE查询不起作用?

更新2:我解决了这个,看到我的答案。 我使用OleDb从C#调用Microsoft Access数据库中的查询,但我无法让我的更新查询工作。 不会引发任何错误,但数据库中不会保留更新。 任何人都可以对此有所了解吗? 数据库中的SQL查询: UPDATE tableName SET tableName.LastPolledDtg = LastPolledDtg WHERE tableName.key = ID; C#: OleDbCommand command = new OleDbCommand(); SetCommandType(command, CommandType.StoredProcedure, “NameOfQueryInAccessDatabase”); AddParamToSQLCmd(command, “@ID”, OleDbType.Integer, 4, ParameterDirection.Input, id); AddParamToSQLCmd(command, “@LastPolledDtg”, OleDbType.Date, 4, ParameterDirection.Input, DateTime.Now); using (OleDbConnection connection = new OleDbConnection(“connectionString”)) { command.Connection = connection; connection.Open(); result = command.ExecuteNonQuery(); } 连接字符串: “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents […]