Tag: sql

将C#连接到SQL Server Compact数据库

嗨,我正在尝试将SQL服务器压缩数据库连接到我的程序,我想要一个删除数据库中所有条目的按钮,当我按下该按钮时程序抛出exception并给出以下错误消息“网络相关或建立与SQL Server的连接时发生特定于实例的错误。找不到服务器或无法访问服务器。validation实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误: 26 – 找到指定的服务器/实例时出错“” 请帮忙? =] 对不起,代码在下面=] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.SqlServerCe; namespace Booking_system_Final { public partial class PendingJobs : Form { SqlConnection sc = new SqlConnection(“Data Source=C:\\Users\\Administrator\\My Documents\\BMS_Data.sdf”); public PendingJobs() { InitializeComponent(); } private void PendingJobs_Load(object sender, […]

必须声明标量变量

当我尝试在我的应用程序中执行以下非查询sql命令时,我总是收到错误消息 – 必须声明标量变量’@RateID’ 我有点不知道为什么我收到这个错误。 这是我的代码: string sqlText = “INSERT INTO tblRates (RateID, IPName, RateName, Rate, DateFrom, DateTo, Active) ” + “VALUES (@RateID, @IPName, @RateName, @Rate, @DateFrom, @DateTo, @Active);”; SqlCommand sqlCom = new SqlCommand(sqlText); sqlCom.Parameters.Add(“@RateID”, SqlDbType.Int); sqlCom.Parameters.Add(“@IPName”, SqlDbType.Text); sqlCom.Parameters.Add(“@RateName”, SqlDbType.Text); sqlCom.Parameters.Add(“@Rate”, SqlDbType.Decimal); sqlCom.Parameters.Add(“@DateFrom”, SqlDbType.Date); sqlCom.Parameters.Add(“@DateTo”, SqlDbType.Date); sqlCom.Parameters.Add(“@Active”, SqlDbType.Bit); this._rateID = NextID(); sqlCom.Parameters[“@RateID”].Value = this._rateID; if (this._ipName […]

自SQL 2008升级以来,SqlDataReader.HasRows返回false

我有一个连接到SQL数据库的ASP.NET 2.0网站。 我已经将SQL服务器从2000升级到2008,从那以后,一个页面拒绝工作。 我解决了问题是,即使数据集不为空,对SqlDataReader.HasRows的调用也返回false并且删除检查允许循环通过reader.Read()来访问预期的数据。 _connectionString = WebConfigurationManager.ConnectionStrings[“SQLServer”].ConnectionString; SqlConnection connection = new SqlConnection(_connectionString); SqlCommand command = new SqlCommand(searchtype, connection); SqlParameter _parSeachTerm = new SqlParameter(“@searchterm”, SqlDbType.VarChar, 255); _parSeachTerm.Value = searchterm; command.Parameters.Add(_parSeachTerm); command.CommandType = CommandType.StoredProcedure; try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) //this always returns false!? { while (reader.Read()) {… 有人知道发生了什么吗? HasRows返回正确值的其他页面上有类似的代码块。 编辑 – 只是为了澄清,存储过程会返回我已经确认的结果,因为如果我删除HasRows检查,循环运行正常。 仅将连接字符串中的SQL […]

如果您已经关闭了SqlConnection,是否需要关闭/处理SqlDataReader?

我注意到了这个问题 ,但我的问题更加具体。 使用有什么好处 using (SqlConnection conn = new SqlConnection(conStr)) { using (SqlCommand command = new SqlCommand()) { // dostuff } } 代替 using (SqlConnection conn = new SqlConnection(conStr)) { SqlCommand command = new SqlCommand(); // dostuff } 显然,如果您计划使用相同的连接运行多个命令,这很重要,因为关闭SqlDataReader比关闭并重新打开连接更有效(调用conn.Close();conn.Open();也将释放连接)。 我看到许多人坚持认为无法关闭SqlDataReader意味着保留开放的连接资源,但这不仅适用于您不关闭连接吗?

EntityFramework包版本=“6.1.3”和Web配置版本6.0.0.0?

我创建了一个包含EF 6.1.3的ASP.NET项目 它的show package version =“6.1.3”和Web.config版本6.0.0.0 但是在web.config中我仍然有这个: section name=”entityFramework” type=”System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ requirePermission=”false” 所有其他依赖程序集都已正确更新。 它在服务器上出错 名称空间’System.Data.Entity中不存在类型或命名空间名称“Infrastructure” 我认为这是由于版本问题。 我应该自己更新吗?

SQL Server DateTime和C#DateTime

在我的SQL服务器上,我有一个非常简单的测试表,它只包含三行: ID , Date和Hours 。( varchar , DateTime , varchar )。 SQL中的DateTime格式如下: yyyy-MM-dd HH:mm:ss.fff 。 C#中的DateTime格式如下: yyyy-dd-MM HH:mm:ss.fff 。 我使用以下代码来获取C#DateTime格式: string ddd = “2012-10-10 00:00:00.000”; dt1 = DateTime.ParseExact(ddd, “yyyy-MM-dd HH:mm:ss.fff”, null); 如果我尝试将其变成yyyy-dd-MM我会收到错误: 日历时间由字符串表示,日历不支持。 在我的C#应用​​程序中,我正在尝试查找修整日期之间的总小时数。 我有点工作,但它只适用于01到12之间的日期。 因此,从2012-01-10到2012-10-10 (十天)将从数据库中给我正确的总小时数。 但是当我写2012-01-10到2012-14-10 (十四天)时,我收到一个错误: 将char数据类型转换为datetime数据类型导致超出范围“ 先感谢您。 PS。 你能建议一个更简单的约会方式吗? mySQL查询 string CommandText = “SELECT * FROM date_test WHERE id = ‘4’ […]

OracleCommand命令,ExecuteNonQuery问题

我必须清除oracle数据库中的某些表,但是当我遇到运行以下代码的问题时 public static void ClearDataTables(IList tableNames) { string connectionString = “CONNECTIONSTRING”; using (OracleConnection connection = new OracleConnection()) { connection.ConnectionString = connectionString; connection.Open(); foreach (string table in tableNames) { OracleCommand command = connection.CreateCommand(); string sql = String.Format(“DELETE FROM TOA_REPORTING.{0}”, table); command.CommandText = sql; command.ExecuteNonQuery(); } connection.Close(); } } 我用这个列表调用这个方法 ClearDataTables(new List { “GROUP_DEFINITION”, “GROUP_REPORT_EMAIL_LIST”, “GROUP_EQUIPMENT_GROUP_STN_XREF”}); 它可以很好地运行前两个表,但是在第三个表上,它会卡住,应用程序会永远运行… […]

如何使用c#sql server向现有表添加新行

我需要写一个程序。 程序的一部分是写入sql数据库(.mdf)。 我在尝试向表中添加新行时遇到了很多麻烦(称为“数据”)。 这是代码: … DataSet ds = new DataSet(); System.Data.SqlClient.SqlDataAdapter da; DataRow dRow; string sql = “SELECT * From Data”; da = new System.Data.SqlClient.SqlDataAdapter(sql, con); … System.Data.SqlClient.SqlCommandBuilder cb; cb = new System.Data.SqlClient.SqlCommandBuilder(da); dRow = ds.Tables[“Data”].NewRow(); dRow[0] = “my_data1”; dRow[1] = “my_data2”; dRow[2] = “my_data3”; … ds.Tables[“Data”].Rows.Add(dRow); da.Update(ds, “Data”); … 我执行此代码,但数据没有保存到表中。 有谁知道如何在表中输入新行并保存它?

Linq – 在一个查询中计算多个平均值

我正在尝试将一些SQL查询转换为Linq,以避免多次访问数据库。 我正在尝试转换的旧SQL: SELECT AVG(CAST(DATEDIFF(ms, A.CreatedDate, B.CompletedDate) AS decimal(15,4))), AVG(CAST(DATEDIFF(ms, B.CreatedDate, B.CompletedDate) AS decimal(15,4))) FROM dbo.A INNER JOIN dbo.B ON B.ParentId = A.Id 所以我创建了两个C#类: class B { public Guid Id { get; set; } public DateTime CreatedDate { get; set; } public DateTime CompletedDate { get; set; } } class A { public Guid Id { […]

按参数列表筛选SQL查询

我有一个查询,我想返回与值列表关联的所有行。 你可以这么简单地写成: select * from TableA where ColumnB in (1, 2, 3, 5) 我可以用C#生成这个查询并执行它。 然而,这显然不太理想,因为它不使用参数,它会在尝试缓存查询计划时受到影响,并且显然容易受到SQL注入攻击。 另一种方法是将其写为: select * from TableA where ColumnB = @value 这可以通过C#执行多次,但这会导致N DB命中。 我能看到的唯一另一个选择是创建一个临时表并以这种方式连接它,但是我没有看到这一点,因为它会更复杂并且受到与第一个选项相同的限制。 我正在使用SQL Server和OLDB,创建查询不是问题。 我正在努力创造最有效的流程。 这三种方法中哪一种更有效? 我错过了替代方案吗?