Tag: sql server

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” 我认为这是由于版本问题。 我应该自己更新吗?

Linq to Sql – DateTime格式 – YYYY-MMM(2009年3月)

我想写一个Linq to Sql查询,它通过Username和DateTime进行计数和分组。 我希望DateTime的格式如下“YYYY-MMM”(即2009年3月)。 我认为这可行,但Linq to Sql无法解析ToString“format”参数。 dc.MyTable .GroupBy(r => new { Name = r.UserName, YearMonth = r.SomeDateTime.ToString(“yyyy-MMM”) }) .Select(r => new { Name = r.UserName, YearMonth = r.YearMonth, Count = r.Count() }) .OrderBy(r => r.YearMonth) .ThenBy(r => r.Name); 有没有人有任何想法/建议? 谢谢。

当源DataTable行具有DBNull.Value时,SqlBulkCopy进入表,默认列值失败

更新: 这是我的解决方案 我有一个表定义为: CREATE TABLE [dbo].[csvrf_References] ( [Ident] [int] IDENTITY(1,1) NOT NULL, [ReferenceID] [uniqueidentifier] NOT NULL DEFAULT (newsequentialid()), [Type] [nvarchar](255) NOT NULL, [Location] [nvarchar](1000) NULL, [Description] [nvarchar](2000) NULL, [CreatedOn] [datetime] NOT NULL DEFAULT (getdate()), [LastUpdatedOn] [datetime] NOT NULL DEFAULT (getdate()), [LastUpdatedUser] [nvarchar](100) NOT NULL DEFAULT (suser_sname()), CONSTRAINT [PK_References] PRIMARY KEY NONCLUSTERED ([ReferenceID] ASC) ) ON […]

与asp.net的SqlDependency问题

我正在尝试使用server_brokerfunction从sqlserver获取更改的值。 我的代码如下 protected void Page_Load(object sender, EventArgs e) { GetData2(); } private void GetData2() { List lst = new List(); using (SqlConnection con = Baglan.Sql) { string sql = “SELECT [Id],[Ad],[Durum] FROM [dbo].[Masa]”; using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); SqlDependency dependency = new SqlDependency(cmd); dependency.OnChange += new OnChangeEventHandler(dependency_OnDataChangedDelegate); using (IDataReader reader = […]

存储过程需要一个我已经传入的参数

我试图使用此声明执行存储过程: ALTER PROCEDURE [dbo].[getByName] @firstName varchar, @lastName varchar AS … 我在C#中调用如下: public List GetPersonByName(string first, string last) { var people = new List(); var connString = ConfigurationManager.ConnectionStrings[“MyDbConnString”].ConnectionString; using (var conn = new SqlConnection(connString)) { using (var cmd = new SqlCommand(“dbo.getByName”,conn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter(“@firstName”, SqlDbType.VarChar, 50)).Value = first; cmd.Parameters.Add(new SqlParameter(“@lastName”, SqlDbType.VarChar, 50)).Value = […]

可空对象的值必须为#2

我正在尝试重用我一直使用的相同代码,但现在遇到了错误。 我循环遍历各种用户表,在那里我这样做: DateTime dcdt = (DateTime)u.DateCreated; DateTime lldt = (DateTime)u.LastLogon; userRow[“DateCreated”] = dcdt.ToShortDateString(); 在循环内。 我收到错误: System.InvalidOperationException: Nullable object must have a value. 该错误突出显示“lldt”行 ,而不是首先出现的“dcdt”。 这本身就很奇怪。 检查数据库“允许空值”中的这两个字段。 它们都可以为null或者都不为null。 这两个值都列为DateTime? 通过intellisense的类型。 我不明白为什么ASP.NET拒绝允许我为空日期输出空白。 如果它为空/ null,则逻辑会建议ASP.NET不应该只打印任何内容。 我怎么想输出空日期呢? 我尝试添加if语句以防止尝试转换null DateTimes,但它没有帮助,这没有任何意义。

按参数列表筛选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,创建查询不是问题。 我正在努力创造最有效的流程。 这三种方法中哪一种更有效? 我错过了替代方案吗?

如何在SQL事件探查器中查看SQL查询?

当我发布更新查询或其他更改数据库中的数据的数据操作语言(DML)查询时,使用Entity Framework 4,如何查看发送到SQL Server的查询? 假设我做了类似的事情: someEntityObjectInstance.SomeProperty = newValue; context.SaveChanges(); 在这种情况下,没有ObjectQuery来执行ToTraceString(),所以我无法真正看到幕后发生了什么。 我相信有一些Microsoft SQL Server工具,比如探查器或者可以帮助我查看查询的东西。 另外,我认为VS 2010 Ultimate中的一些Intellitrace会做同样的事情吗? 你有没有可以教我如何使用SQL 2005 Profiler,如果有这样的事情? 更新 我正在查看SQL Server 2005 Profiler中的跟踪,但是当我发出context.DeleteObject()调用或更新对象并调用context.SaveChanges() ,我在Profiler中看不到UPDATE或DELETE查询。 我只看到奇怪的SELECT查询。

C#存储过程或函数需要未提供的参数

我是C#的新手,我正在尝试调用我的数据库中的存储过程,该存储过程需要一个参数。 我得到错误“过程或函数’SP_getName’期望参数’@username’,这是未提供的。” 当我提供参数时,我的存储过程正常工作,我通过SQL管理工作室运行它。 GO DECLARE @return_value int EXEC @return_value = [dbo].[SP_getName] @username = ‘bob101’ SELECT ‘Return Value’ = @return_value GO 但是,当我尝试调用它时,错误是我如何传递参数,但我无法发现问题所在。 //create a sql command object to hold the results of the query SqlCommand cmd = new SqlCommand(); //and a reader to process the results SqlDataReader reader; //Instantiate return string string returnValue = null; //execute […]

C#,sp_executesql和不正确的语法

我正在调用下面的代码。 在线(IDataReader dr = cmd.ExecuteReader()) sql barfs 在’CompanyUpdate’附近的语法不正确。 using (SqlCommand cmd = new SqlCommand(“CompanyUpdate”)) { cmd.Parameters.Add(“@CompanyID”,SqlDbType.Int); cmd.Parameters.Add(“@Description”,SqlDbType.VarChar,50); cmd.Parameters[“@CompanyID”].Value = companyid; cmd.Parameters[“@Description”].Value = description; SqlConnection cn = new SqlConnection(“Data Source=[datasource];Initial Catalog=dotNext;User ID=[user];Password=[password];Pooling=True;Application Name=dotNext”); cn.Open(); cmd.Connection = cn; using (IDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { this.CompanyID = dr.GetInt32(0); } } } 我看了一下sqlprofiler并注意到以下内容: exec sp_executesql N’CompanyUpdate’,N’@CompanyID […]