Tag: SQL服务器

可以真正取消/杀死sql server查询吗?

我想让用户能够取消正在运行的查询。 查询真的很慢。 (查询优化除此之外。)这主要是出于好奇。 MSDN说: 如果没有什么可以取消,则不会发生任何事情 但是,如果正在处理命令,并且尝试取消失败,则不会生成exception。 Cmd – SqlCommand DA – DataAdapter Conn – SqlConnection CurrentSearch – 线程 LongQuery – Singleton 这就是我所拥有的: var t = new Thread(AbortThread); t.Start(); void AbortThread() { LongQuery.Current.Cmd.Cancel(); LongQuery.Current.Cmd.Dispose(); LongQuery.Current.DA.Dispose(); LongQuery.Current.Conn.Close(); LongQuery.Current.Conn.Dispose(); LongQuery.Current.Cmd = null; LongQuery.Current.DA = null; LongQuery.Current.Conn = null; CurrentSearch.Abort(); CurrentSearch.Join(); CurrentSearch = null; } 我注意到CurrentSearch.Abort()是阻塞的,这就是为什么我把它包装在一个线程中,这可能意味着该线程仍在工作。 最后,除了这个我可以做什么来取消查询? 实际上是否可以从.NET取消这么长的查询?

日历System.Globalization.GregorianCalendar中不支持字符串表示的DateTime

我只是想将出生日期保存到SQL数据库中,但每次获得新的exception时,数据库字段类型都是datetime。 这是我的代码 usinfo.BirthDate = DateTime.ParseExact(txtDOB.Text.ToString(), “MM/dd/yyyy”, CultureInfo.InvariantCulture);

表值可选参数

是否可以使用表值参数作为可选参数创建过程。 我尝试了以下代码: CREATE PROCEDURE SP @Table testteype = null READONLY AS …. 但我得到这个错误: Operand type clash: void type is incompatible with test type ps:我使用C#.Net的sql server

WebConfig.ConnectionString中的相对路径引用

是否可以在web.config中的connectionstring,attachDbFileName属性中指定相对路径引用? 例如,在我的数据库位于App_data文件夹中,我可以轻松地将AttachDBFilename指定为| DataDirectory | \ mydb.mdf和| Datadirectory | 将自动解析为正确的路径。 现在,假设web.config文件位于A文件夹中,但数据库位于B \ App_data文件夹中,其中A和B文件夹位于同一文件夹中。 无论如何使用相对路径引用来解析到正确的路径?

如何列出本地计算机上安装的SQL Server实例? (仅限本地)

我想知道是否有一种方法可以列出本地计算机上安装的SQL Server实例。 SqlDataSourceEnumerator和EnumAvailableSqlServers没有这个技巧,因为我不需要通过本地网络的实例。

带有列名的DataReader到.CSV

我正在从SqlDataReader生成一个csv文件,但它没有写出列名,我怎么能让它写出来? 我正在使用的代码如下: SqlConnection conn = new SqlConnection(myconn); SqlCommand cmd = new SqlCommand(“dbo.test”, conn); cmd.CommandType = CommandType.StoredProcedure; conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); StringBuilder sb = new StringBuilder(); StreamWriter sw = new StreamWriter(myfilePath + “testfile.csv”); while (reader.Read()) { for (int i = 0; i < reader.FieldCount; i++) { string value = reader[i].ToString(); if (value.Contains(",")) value = "\"" […]

如何在C#中显示SQL“PRINT”命令的输出?

我有一个总是返回“PRINT”命令的SQL过程,我想提取这个“PRINT”命令的输出,即C#中的过程我该怎么做? 这是程序 ALTER PROC ResultsPoll @pollid INT AS DECLARE @count1 INT DECLARE @count2 INT DECLARE @count3 INT DECLARE @count4 INT DECLARE @count5 INT DECLARE @test VARCHAR(MAX) DECLARE @value VARCHAR(MAX) SELECT @count1 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a1 SELECT @count2 = COUNT(mem_id) FROM […]

如何在另一个表中删除包含其父行的数据的行

有两个表[ UserData ]和[ HotelData ]我用外键链接它们。 这是“ Username ”,我想删除哪个用户名输入,并删除其在第二个表上的数据。 我不知道如何编写sql命令或c#。 System.Data.dll中发生了未处理的“System.Data.SqlClient.SqlException”类型exception 附加信息:DELETE语句与REFERENCE约束“FKHotelData”冲突。 冲突发生在数据库“E:\ GRADED UNIT DEV \ BLACKMARCH \ BLACKMARCH \ BIN \ DEBUG \ DATABASEBM.MDF”,表“dbo.HotelData”,列’Username’中。 该语句已终止。 private void btnDelete_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@”Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\Graded unit Dev\BlackMarch\BlackMarch\bin\Debug\DataBaseBM.mdf;Integrated Security=True;Connect Timeout=30″); string sqlStatement = “DELETE FROM UserData WHERE Username = @Username”; con.Open(); SqlCommand […]

C#windows窗体程序中的“指定的强制转换无效”错误

我有一个“指定演员阵容无效”错误。 C#中的Windows表单应用程序。 我正在尝试从表中检索值。 值是smallint或数字(我试过两个字段,都给我相同的错误),我尝试将它存储在一个int变量中。 这里是来源: using (SqlDataReader rdr = cmd.ExecuteReader()) //”select * from table where fieldname = ” + value { while (rdr.Read()) { int number = (int)rdr[“quantity”]; // error is here

从asp.net中的存储过程中获取返回值

我有一个存储过程 ALTER PROC TESTLOGIN @UserName varchar(50), @password varchar(50) As Begin declare @return int; set @return = (SELECT COUNT(*) FROM CPUser WHERE UserName = @UserName AND Password = @password); return @return; End 并在c# SqlConnection con = db.con; SqlCommand cmd = new SqlCommand(“TESTLOGIN”, con); cmd.CommandType = CommandType.StoredProcedure; SqlParameter parm = new SqlParameter(“@return”, SqlDbType.Int); parm.Direction = ParameterDirection.ReturnValue; cmd.Parameters.Add(parm); […]