Tag: sql server

ssis vsta脚本组件在编辑VS2015时打开速度慢

自从升级visual studio 2015并使用ssis以来,我们已经体验到Script Task / Component的编辑器大约需要30秒才能打开。 我看到一些较旧的post建议将“127.0.0.1 crl.microsoft.com”添加到本地hosts文件中。 但是对我正在经历的问题没有影响。 真的希望有人有同样的问题,也许找到解决方案?

如何获取表的外键引用

我有一个小问题我还没有找到答案:我如何进入c#并使用Microsoft.SqlServer.Smo外键列所指的表? foreach (Column column in currentTable.Columns) { if (column.IsForeignKey) { //GET TABLE FOREIGN KEY REFERS TO } }

最有效的方法来测试SQL连接字符串的可用性

我有这个代码,我试图让它测试SQL字符串连接,但我不知道如何处理connection.Open = true部分connection.Open = true你能帮我解决这个问题吗? 非常感谢您的参与。 private void button1_Click(object sender, EventArgs e) { try { using (SqlConnection connection = new SqlConnection(“Data Source='” + textBox1.Text + “‘;Initial Catalog='” + textBox2.Text + “‘;User ID='” + textBox3.Text + “‘;Password='” + textBox4.Text + “‘”)) { try { connection.Open(); if (connection.Open == true) // if connection.Open was successful { MessageBox.Show(“You […]

从DotNet执行存储过程需要很长时间,但在SSMS中它是立即的

我在SQL Server 2000上有一个存储过程,它有3个参数。 当我使用SqlCommand.ExecuteReader()从DotNet调用存储过程时,大约需要28秒。 当我在SSMS中直接运行相同的查询时,它会立即返回。 当我从存储过程中取出查询并使用DotNet直接运行时,它也会立即返回。 这些是SQL事件探查器会话的结果 SP内部网点 持续时间:28030 阅读:2663365 写道:0 SP内部SSMS 持续时间:450 阅读:23535 写道:65 直接在Dot Net内部查询 持续时间:360 阅读:24865 写道:57 以下事情对我来说很突出: SSMS中的统计数据和Dot Net中的直接查询非常相似 Dot Net SP可以执行大量读取但不会写入 另外两个读取很少,但有几个写入 任何帮助,将不胜感激。 以下是SP的略微观察版本: 我怀疑它是一个查询计划问题,因为即使我从DotNet反复运行它,我总是得到相同的结果。 这是由于IP问题而略微改变的SP版本。 我希望它仍然有意义: SELECT t1.pkiOrderID, t1.fkiBasketId, t1.sOriginBasketCode, t1.dtDateCreated, t1.sOrderCode, t1.fkiUserCde, t1.fkiOrgCde, t1.sApprovalPerson, t1.dtDateApproved, t1.sRequestNo, t1.dtRequiredDate, t1.Requestor, t1.OnBehalfOf, t1.OrderDesc, t1.OrderTypeId, t1.fkiAgentID, t1.fkiAgentRegionID, stat.iStatus, count(oi.pkiOrderItemId) as OrderItems, count(wf.fkiOrderId) […]

从SQL Server到C#读取VARBINARY(MAX)

我需要从SQL Server 2008读取数据行。其中一列的类型是VARBINARY(MAX) 。 在C#中,我想使用out参数来读取它(并且给定的场景主要满足需求)。 但我需要指定参数变量大小来填充C#变量。 在这里我假设8000就够了……但谁知道: database.AddOutParameter(command, “vbCertificate”, DbType.Binary, 8000); 所以问题是: SQL Server 2008的MAX数量是多少? 这种情况可以使用out参数吗?

无法立即连接到新创建的SQL Server数据库

我正在使用SQL Server管理对象创建数据库。 我编写了以下方法来生成数据库: public static void CreateClientDatabase(string serverName, string databaseName) { using (var connection = new SqlConnection(GetClientSqlConnectionString(serverName, String.Empty))) { var server = new Server(new ServerConnection(connection)); var clientDatabase = new Database(server, databaseName); clientDatabase.Create(); server.ConnectionContext.Disconnect(); } } 此后不久,我调用另一种方法来执行SQL脚本来生成表格等: public static void CreateClientDatabaseObjects(string createDatabaseObjectsScriptPath, string serverName, string databaseName) { using (var connection = new SqlConnection(GetClientSqlConnectionString(serverName, databaseName))) { string […]

将DBNull.Value和Empty文本框值传递给数据库

我的页面上有一些文本框可以为空,因为它们是可选的,我有这个DAL代码 parameters.Add(new SqlParameter(“@FirstName”, FirstName)); parameters.Add(new SqlParameter(“@LastName”, LastName)); parameters.Add(new SqlParameter(“@DisplayName”, DisplayName)); parameters.Add(new SqlParameter(“@BirthDate”, BirthDate)); parameters.Add(new SqlParameter(“@Gender”, Gender)); 任何这些字段都可以为空。 问题是当它们为空时,我收到Procedure XXX requires @FirstName which was not supplied 然后我将代码更改为 parameters.Add(new SqlParameter(“@FirstName”, String.IsNullOrEmpty(FirstName) ? DBNull.Value : (object)FirstName)); parameters.Add(new SqlParameter(“@LastName”, String.IsNullOrEmpty(LastName) ? DBNull.Value : (object) LastName)); parameters.Add(new SqlParameter(“@DisplayName”, String.IsNullOrEmpty(DisplayName) ? DBNull.Value : (object) DisplayName)); parameters.Add(new SqlParameter(“@BirthDate”, BirthDate.HasValue ? (object)BirthDate.Value : […]

回滚批量复制

我有一个应用程序,通过c#中的批量复制类从我的数据库中复制。 发生exception时,我可以在sql server中回滚批量复制操作吗?

如何将DataAdapter的超时时间增加到3分钟?

当我使用以下方法执行查询时,我得到超时。 所以我的问题是:如何将超时设置为180秒? 我正在使用连接来使用queryresult填充dataSet。 internal static DataSet executeQuery(string queryString) { // #connection DataSet dataSet = new DataSet(); string connectionString = Connection.connectionStringSQL01NavProvider(); OleDbConnection connection = new OleDbConnection(connectionString); OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, connectionString); // Open the connection and fill the DataSet. connection.Open(); try { adapter.Fill(dataSet); DataTable dt = new DataTable(); dt = dataSet.Tables[0]; DataRow dr; try { […]

使用存储过程从Dapper.net查询返回值

我试图using Dapper.Net调用存储过程并获取返回值。 p.Add(“@INCIDENT_ID”, dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); var retResults = con.Execute(“usp_GetIncidentID”, p, commandType:CommandType.StoredProcedure); int IncidentID = p.Get(“INCIDENT_ID”); 我已经尝试了几个不同的参数方向并使用”@INCIDENT_ID” 。 如果单步retResults结果,可以看到正确的返回值在retResults值中下降,但我无法按照下面的文档中描述的方式访问这些值。 存储过程Dapper支持完全存储的过程: var user = cnn.Query(“spGetUser”, new {Id = 1}, commandType: CommandType.StoredProcedure).First();}}} If you want something more fancy, you can do: var p = new DynamicParameters(); p.Add(“@a”, 11); p.Add(“@b”, dbType: DbType.Int32, direction: ParameterDirection.Output); p.Add(“@c”, dbType: DbType.Int32, […]