Tag: sql server

SqlDataAdapter是否打开自己的连接?

SqlDataAdapter是否打开自己的连接? private DataTable UpdateOxa(ProductCatalogSyncData syncDataModel, string connectionString) { var ds = syncDataModel.SyncDataSet; var dtResults = new DataTable(“BillingIds”); var syncConfig = syncDataModel.XDataMapping; string EntityName; string queryString = @” IF OBJECT_ID(‘#CRM2Oxa_ID_MAPPING’) IS NOT NULL DROP TABLE #CRM2Oxa_ID_MAPPING CREATE TABLE #CRM2Oxa_ID_MAPPING( [EntityName][nvarchar](1000) NULL, [TableName][nvarchar](1000) NULL, [CRMID][uniqueidentifier] NULL, [OxaID][int] NOT NULL, [CRMColumnName][nvarchar](1000) NULL ) “; var listOfSqlCommands = new […]

如何使用.NET 2.0以编程方式复制SQL Server 2000表?

我想备份一个表,用另一个名称将副本保存在同一个数据库中。 我想以编程方式使用.NET 2.0(最好是C#)。 有人可以指出我该怎么办?

用于事件驱动通信的SQL CLR

在我工作的地方,他们使用长轮询技术来检测数据库中发生的事件。 虽然它有效…我想每个人都会同意轮询数据库不是最佳的。 我宁愿尝试某种推送技术或技术。 因此,我正在考虑使用表触发器来调用SQL CLR对象,该对象将事件放入队列或调用Web服务。 有很多关于如何做到这一点的例子: 从SQL CLR调用Web服务? 如何从SQL Server存储过程调用Web服务 在CLR集成中使用Webservices和Xml序列化 但是,我有点担心这样做的智慧和表现。 所以我的问题是: 长时间运行的触发器进程是否可以阻止原始INSERT完成? 失败的触发器进程是否会阻止原始INSERT完成? TRIGGERS是否在他们自己的线程上运行? 这是愚蠢的尝试还是有更好的选择?

如何将C#中的byte 作为字符串传递给SQL Server存储过程并转换为varbinary(MAX)

在这个项目中,有一个包装ADO.NET以进行常见数据访问的类,如ExecuteDataReader , ExecuteScalar等。 使用这些方法调用存储过程时,它允许您传递Dictionary参数(字符串键,字符串值),然后将其作为SqlParameter添加到SqlCommand对象中。 有一种情况我们必须在数据库中保存文档。 该文档是byte[] ,数据库中的相应列是varbinary(MAX) 。 我们已经四处寻找解决方案,但所有可用的都是使用SqlDbType.Varbinary示例,在这种情况下这不是一个选项。 我们最近的尝试是尝试将byte[]转换为二进制字符串,将其作为nvarchar(max)传递给存储过程,然后在将其保存到Document表时使用CONVERT(varbinary(max), @theFileBinaryString) ,但是,这会保存损坏的文件。 C# byte[] pDocumentBytes = …; string documentAsBinary = “0x” + BitConverter.ToString(pDocumentBytes).Replace(“-“, “”); SQL @DocumentContentAsBinary nvarchar(max) — This is “documentAsBinary” from C# above DECLARE @DocumentContentVarbinary varbinary(max); SET @DocumentContentVarbinary = CONVERT(varbinary(max), @DocumentContentAsBinary);

如何仅在sql中为特定连接创建事务?

我想在sql中为特定连接创建一个事务。 它应该为所有连接锁定该表,但允许其他连接读取该表,即使该事务是从另一个连接开始的。 我应该使用什么隔离级别。 Tran = CnnTran.BeginTransaction(IsolationLevel.RepeatableRead);

从SQL DB读取架构名称,表名称和列名称并返回到C#代码

我有一个数据库(在SQL Server 2008 SP3中)并且需要C#代码中相关层次结构中的所有模式名称,表名和列名,我有以下SQLElement类: public class SQLElement { public string SchemaName { get; set; } public string TableName { get; set; } public string ColumnName { get; set; } } 并有一个列表像: List SQLElementCollection = new List(); 那么如何从DB读取名称并将它们添加到此列表(SQLElementCollection)? 例如假设我们创建一个这样的表: Create Table [General].[City] ( [Id] BIGINT NOT NULL IDENTITY(1, 1), [Title] NVARCHAR(30) NOT NULL DEFAULT (N”), [Province_Id] […]

如何使用SQL Server数据库中的值填充列表?

该列表将根据我的数据库中有多少项而增长和缩小。 我需要填充列表而不是列表框。 我知道我需要打开一个连接。 using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) { using (var cmd = conn.CreateCommand()) { conn.Open(); List TagList = new List(); for (int i = 0; i < TagList.Count; i++) TagList[i].Add("Data from database"); cmd.ExecuteNonQuery(); } } 我真的不确定如何做到这一点,我确信我的方法看起来非常错误,所以我真的需要帮助。 有人能告诉我我做错了什么吗?

将C#类(类库)转换为SQL DDL(表)

我必须将一组C#类(类库)转换为SQL Server使用的SQL表,以便数据可以存储在数据库中并通过数据库进行操作。 问题是这些类的数量很大(超过1000个类),并且需要很长时间来手动设置这样的数据库模式(表,索引,存储过程等) – 更不用说类层次结构了我需要保持。 所以,问题是: 有没有一个工具可以帮助我从C#类库创建数据库模式? 我不是在寻找完美的工具(但如果有这样的工具我会很高兴知道),但是对于一个能帮助我至少创造一个起点的工具。 请注意,我更倾向于您建议的解决方案来引用.NET Framework 2.0版,并且基于传统实践(T-SQL代码如: CREATE TABLE … ),尽管每个建议都受到欢迎。

将linq中的字符串转换为大数据库中的实体

我在linq中将字符串转换为int到实体但转换为.ToInt32和int.Parse无法转换为sql而且我的数据库是BIG而且无法将所有内容都放到内存中(超过60k记录并且变得更大)我的查询就像是 int myNumber = 1390; var result = from dr in myEntitiy.TableX where (Convert.ToInt32(dr.stringYear) > myNumber) // <== error select dr; 错误说不能翻译转换方法 LINQ to Entities无法识别方法’Int32 ToInt32(System.String)’方法,并且此方法无法转换为存储表达式。 什么解决方案 更新:如果没有办法做到这一点,请让我确定这一点,然后我必须改变数据库中的字段类型,但它会很难:(

(附加)EF无法从#temp表中选择的存储过程推断返回模式

我有类似的问题 EF无法从#temp表中选择存储过程中的返回模式 并且我已经基于上述解决方案创建了我的存储过程解决方案但是我仍然得到类似的EF错误,我真的不知道为什么或理解我如何解决它。 类型为“rowNum”的成员在数据读取器中没有具有相同名称的相应列。 我的具体错误: 数据读取器与指定的“Te​​stModel.sp_SoInfoDocs_Result”不兼容。 类型为“rowNum”的成员在数据读取器中没有具有相同名称的相应列。 我的存储过程: ALTER PROCEDURE [dbo].[sp_SoInfoDocs] @searchText nvarchar(200), @PageNumber int, @PageSize int AS BEGIN IF 1 = 2 BEGIN SELECT cast(null as int ) as rowNum ,cast(null as text) as serverName ,cast(null as text) as jobName ,cast(null as DATETIME) as oDate ,cast(null as int) as runCount ,cast(null as nvarchar(10)) as […]