Tag: sql

Sync Framework 2.1中的BulkInsertCommand失败

有时我尝试使用Sync Framework 2.1从SQL Express同步到SQL Server时出现以下错误。 一旦客户端收到此错误,他们必须重新初始化范围。 像错误状态这样的语法没有任何问题,因为它在很长一段时间内都没有问题(插入发生)。 有什么想法吗? 上午11:18:21无法对表’XXX’执行’BulkInsertCommand’命令; 该交易已回滚。 确保命令语法正确。 上午11:18:21 Microsoft.Synchronization 11:18:21 AM at Microsoft.Synchronization.Data.ChangeHandlerBase.CheckZombieTransaction(String commandName,String table,Exception ex) 从跟踪日志中: 警告,OfflineAgentMonitor.vshost,13,04 / 05/2011 11:16:17:224,批量命令BulkUpdateCommand失败,出现以下exception。 在单次申请期间将重试行。 System.Data.SqlClient.SqlException(0x80131904):尝试传递具有19列的表值参数,其中相应的用户定义表类型需要20列。

SSIS脚本组件:Microsoft.SqlServer.Dts.Pipeline.BlobColumn

在C#组件中苦苦挣扎。 我想要做的是在我的输入源中使用ntext的列,该列用管道分隔,然后将数组写入文本文件。 当我运行我的组件时,我的输出如下所示: DealerID,StockNumber,Option 161552,P1427,Microsoft.SqlServer.Dts.Pipeline.BlobColumn 我一直在使用GetBlobData方法,我正在努力解决它。 任何帮助都非常感谢! 这是完整的脚本: public override void Input0_ProcessInputRow(Input0Buffer Row) { string vehicleoptionsdelimited = Row.Options.ToString(); //string OptionBlob = Row.Options.GetBlobData(int ; //string vehicleoptionsdelimited = System.Text.Encoding.GetEncoding(Row.Options.ColumnInfo.CodePage).GetChars(OptionBlob); string[] option = vehicleoptionsdelimited.Split(‘|’); string path = @”C:\Users\User\Desktop\Local_DS_CSVs\”; string[] headerline = { “DealerID” + “,” + “StockNumber” + “,” + “Option” }; System.IO.File.WriteAllLines(path + “OptionInput.txt”, headerline); using (System.IO.StreamWriter […]

从单独的列添加Entity Framework中的日期时间和时间

我想得到所有尚未结束的事件 select * FROM [Events] where EndDate+cast(EndTo as datetime)>GETDATE() 这是完美的。 这是我的价值( EndTo: 11:00:00.0000000, END DATE: 2016-05-26 ) 我试过用 var list = dbContext.Events .Where(e => e.EndDate + e.EndTo > DateTime.Now) .ToList(); 而且我收到了一个错误 DbArithmeticExpression参数必须具有数字公共类型。 如何在Entity Framework中编写此查询?

T-SQL:将新的INSERT标识返回给C#

我正在使用存储过程将值放入SQL Server。 过程将向添加的行添加ID。 我需要将此ID返回到我的代码中。 目前我可以在Visual Studio的OUTPUT窗口中看到输出ID,但似乎无法在我的代码中捕获它。 以下是proc的摘要版本: SQL : CREATE PROCEDURE dbo.DoSomething ( @var1 INT = NULL, @var2 INT = NULL, @var3 DATE = NULL ) AS BEGIN INSERT INTO atable ( vara, varb, varc ) VALUES ( @var1, @var2, @var3 ) RETURN SCOPE_IDENTITY() END C#: int result = 0; /// create command SqlCommand cmd […]

如何从Windows服务访问localDB

我需要在本地使用数据库。 我已经使用Visual Studio 2012在(LocalDB)\ v11.0 Server中创建了数据库。从例如控制台应用程序连接时,一切正常。 但我的应用程序是Windows服务。 尝试连接到我的数据库输出: “… The login failed.Login failed for user ‘NT AUTHORITY\SYSTEM” 这有什么解决方案吗? 也许我应该考虑为它设置其他数据库服务器? 如果是,如何设置它以便它只在本地可见?

如何为名称中带空格的列创建复杂的数据类型?

我有一个存储过程,返回列名称中带有空格和短划线的列。 我不能简单地使用“获取列信息”按钮为该存储过程自动生成复杂类型。 如何处理字段名称中的空格和破折号,因为它们不是C#中字段名称的合法字符?

SqlCommand中的字符串列表通过C#中的参数

在C#中使用SqlCommand我在where子句中创建了一个包含IN(list …)部分的查询。 而不是循环我的字符串列表生成我需要查询的列表(如果您认为在sqlInjection中是危险的)。 我以为我可以创建一个参数,如: SELECT blahblahblah WHERE blahblahblah IN @LISTOFWORDS 然后在代码中我尝试添加如下参数: DataTable dt = new DataTable(); dt.Columns.Add(“word”, typeof(string)); foreach (String word in listOfWords) { dt.Rows.Add(word); } comm.Parameters.Add(“LISTOFWORDS”, System.Data.SqlDbType.Structured).Value = dt; 但这不起作用。 问题: 我在尝试一些不可能的事吗 我采取了错误的做法吗? 这种方法我有错吗? 谢谢你的时间 :)

指定演员表无效

我正在尝试使用以下代码从我的数据库中获取Score_Waarde值: critid = critid_arr[teller2].ToString(); int scorehulp = 0; string userid = Session[“userid”].ToString(); SqlCommand cmd3 = new SqlCommand(“SELECT Score_Waarde FROM Score WHERE Crit_ID = ‘” + critid + “‘ AND User_ID = ‘” + userid + “‘ “, con); scorehulp = (int)cmd3.ExecuteScalar(); 当我尝试运行它时,我收到以下错误: 指定的强制转换无效 。 我不明白为什么我收到此错误,因为critid和userid给出了正确的值。

在Visual Studio中查看LINQ执行的SQL的方法?

这个问题在这里已有答案: 查看linq-to-sql生成 3个答案 的sql 我想知道是否有办法在运行LINQ to SQL查询时查看在Visual Studio 2010 Ultimate中针对数据库执行的T-SQL。

entity framework没有在没有标识列的表上工作

我有下表: create table tbl ( id int identity(1,1), val varchar(100) ) 现在,当我使用Entity Framework将对象映射到此表时,它可以工作,但是当我更改表定义时,如下所示: create table tbl1 ( id int, val varchar(100) ) entity framework不会将对象映射到此表。 关于为什么会发生这种情况的任何线索都将受到赞赏。