Tag: sql server

使用datetime作为存储过程中的参数更新表时出错

将char数据类型转换为DateTime数据类型会导致DateTime值超出范围。 该语句已终止。 ALTER PROCEDURE [dbo].[attendance_updatebyemployee_id] @Employee_id int, @AtDate datetime, @FNLogged bit, @ANLogged bit, @LogTime varchar(10), @LogOuttime varchar(10) AS BEGIN SET NOCOUNT ON; update Mst_Attendance set FNLogged=@FNLogged, ANLogged=@ANLogged,LogTime=@LogTime,LogOuttime=@LogOuttime where EmployeeId=@Employee_id and Atdate= @AtDate END 在C#代码我给它 cmd.Parameters.AddWithValue(“@AtDate”,Dtime.ToString(“dd/MMM/yyyy”)); 使用SQl profiler时,传递的数据是 exec [dbo].[attendance_updatebyemployee_id] @Employee_id=2,@AtDate=’Feb 19 2011 12:00:00:000AM’,@FNLogged=1,@ANLogged=0,@LogTime=’11:45 AM’,@LogOuttime=’ ‘ 在存储过程中@AtDate的值为2011-02-19 00:00:00.000. 它正在打破更新命令。 在表格内,日期保存为2/19/2011 12:00:00 AM 我该如何解决这个日期问题。

EntityFramework ConnectionString utf8

我想为我的Entity Framework数据库应用程序添加utf8支持(sql server 2008 r2) 我想我需要将charset添加到connectionString。 这就是我的connectionString的工作方式(当然是匿名的) 我看了一下connectionstrings.com,但我发现没有关于utf8的信息。 我尝试添加charset=utf8 ,但这并不能解决问题。 System.Data.EntityException中的结果:{“基础提供程序在ConnectionString上失败。”} {“不支持关键字:’charset’。”} 题: 如何在connectionString中将字符集设置为utf8? 或者默认启用utf8?

真是奇怪的DataReader性能问题

我有一个SQL Server数据库,我正在使用ADO.NET ExecuteReader来获取一个datareader。 我的存储过程返回大约35,000条记录。 对ExecuteReader的调用大约需要3秒钟才能返回datareader。 我正在使用与此非常相似的代码来获取我的项目。 using(var conn = new SqlConnection(MySQLHelper.ConnectionString)) { conn.Open(); var sqlCommand = SqlHelper.CreateCommand(conn, “spGetItems”); using (var dr = sqlCommand.ExecuteReader()) { while(dr.read){ var item = new Item{ID = dr.GetInt32(0), ItemName = dr.GetString(1)}; items.Add(item); } } } 大多数读取花费0毫秒。 然而,间歇性地我得到一个大约5.5秒(5000+毫秒)的读取。 我查看了数据,并没有发现任何exception。 我认为开始考虑记录这么长时间的记录的频率。 这很有趣。 虽然不完全一致,但它们很接近。 需要很长时间才能加载的记录如下…… 记录#s:29,26,26,27,27,29,30,28,27,27,30,30,26,27 因此看起来26到30个记录会在0到几毫秒内读取,然后需要5秒,然后接下来的26到30个记录将再次按预期读取。 我在这里完全失败了。 我可以发布更多代码,但没有多少。 这是非常简单的代码。 编辑我的字段都不是varchar(max),甚至是close。 我最大的字段是数字(28,12)。 修改我的存储过程后,我不再有问题。 我首先将其修改为选择TOP […]

设置’引发了’System.Data.SqlClient.SqlException’类型的exception

我得到了例外,无法弄明白。 Settings =’((BandwidthRestriction.Models.SettingRespository)settingRespository).Settings’引发了类型’System.Data.SqlClient.SqlException’的exception 我有两张桌子。 namespace BandwidthRestriction.Models { [Table(“Settings”)] public class Setting { [Key] public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public string DefaultValue { get; set; } public string Classification { get; set; } public virtual FacilitySettingOverride FacilitySettingOverride { get; set; […]

如何将大数组发送到存储过程

我需要向存储过程发送几个列表(大约20000个id),如下所示: 1391924, 6546510, 7419635, 6599910, 6546888, 1116510, 6546720, … 我在List上有这些数据 如何将此列表发送到存储过程? 然后我需要在临时表上插入id的列表

如何在Linq to Sql中插入或更新where子句?

我试图将以下存储过程转换为LinqToSql调用(这是SQL的简化版本): INSERT INTO [MyTable] ([Name], [Value]) SELECT @name, @value WHERE NOT EXISTS(SELECT [Value] FROM [MyTable] WHERE [Value] = @value) DB对要检查的字段没有约束,因此在这种特定情况下,需要手动进行检查。 此外,还有许多项目不断被插入,所以我需要确保当这个特定的插入发生时,没有值字段的欺骗。 我的第一个预感是做以下事情: using (TransactionScope scope = new TransactionScope()) { if (Context.MyTables.SingleOrDefault(t => t.Value == in.Value) != null) { MyLinqModels.MyTable t = new MyLinqModels.MyTable() { Name = in.Name, Value = in.Value }; // Do some stuff […]

如何将快照文件转换为任何其他格式?

有没有办法将Sql Server的“快照”文件(* .ss文件)转换为其他格式…如“xml”,“xls”或“txt”等。 谢谢。

在ODBC连接中打开多个结果集到SQL Server

我有一个最初需要连接到Sybase(通过ODBC)的应用程序,但我还需要添加连接到SQL Server的function。 由于ODBC应该能够处理两者,我认为我处于有利位置。 不幸的是,默认情况下,SQL Server不会让我嵌套ODBC命令和ODBCDataReaders – 它会抱怨连接繁忙(连接忙于另一个命令的结果)。 我知道在通过本机驱动程序连接到SQL Server时,我必须指定在类似情况下允许多个活动结果集(MARS),所以我认为这不是问题。 创建SystemDSN时,DSN向导无需任何操作。 有些人提供了注册表黑客来解决这个问题,但这不起作用(向HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI \ system-dsn-name添加值为Yes的MARS_Connection)。 另一个建议是创建一个文件-dsn,并为其添加“MARS_Connection = YES”。 没工作。 最后,一个无DSN的连接字符串。 我尝试过这个(使用MultipleActiveResultSets – 与Sql Server连接使用的变量相同), “Driver={SQL Native Client};Server=xxx.xxx.xxx.xxx;Database=someDB;Uid=u;Pwd=p;MultipleActiveResultSets=True;” 还有这个: “Driver={SQL Native Client};Server=192.168.75.33\\ARIA;Database=Aria;Uid=sa;Pwd=service;MARS_Connection=YES;” 我检查了各种连接字符串网站 – 他们都建议我已经尝试过。 我应该声明我已经尝试过SQL Server驱动程序和SQL Server本机驱动程序……

SQL Server中的BetaInv函数

类似于问题: MySQL中的反转beta我需要在SQL Server存储过程中使用BetaInv函数。 函数在这里描述: Excel的BETAINV 是否有人知道TSQL中的任何类似内容,或者您​​将它包装在CLR .NET托管SQL用户定义函数中? 我确实需要在存储过程中使用它,而不是在使用存储过程检索数据后在C#端执行代码,因为我应该将所有逻辑保留在数据库服务器上以便更好地重用。 我可以假设在SQL Server中运行的.NET托管udf的执行速度与普通的本机TSQL函数一样快吗? 谢谢!

在SqlDataAdapter中防止SQL注入的最佳方法

您好我想知道在SqlDataAdapter防止SQL injection的最佳方法是什么(因为没有办法使用参数化查询)? 例如,让我们使用这部分代码: da_services = new SqlDataAdapter(“SELECT * from table WHERE column='” + textBox1.Text + “‘ AND column2='” + somestring + “‘”, conn); scd_services = new SqlCommandBuilder(da_services); dt_services = new DataTable(); da_services.Fill(dt_services); dtg_services.DataSource = dt_services; conn.Close(); 感谢您的时间。