Tag: tsql ado.net

在SqlCommand中使用params删除

我使用ADO.NET从DB中删除一些数据,如下所示: using (SqlConnection conn = new SqlConnection(_connectionString)) { try { conn.Open(); using (SqlCommand cmd = new SqlCommand(“Delete from Table where ID in (@idList);”, conn)) { cmd.Parameters.Add(“@idList”, System.Data.SqlDbType.VarChar, 100); cmd.Parameters[“@idList”].Value = stratIds; cmd.CommandTimeout = 0; cmd.ExecuteNonQuery(); } } catch (Exception e) { //_logger.LogMessage(eLogLevel.ERROR, DateTime.Now, e.ToString()); } finally { conn.Close(); } } 该代码在没有Exception的情况下执行,但数据未从DB中删除。 当我使用相同的算法插入或更新数据库时,一切正常。 有谁知道这是什么问题?

从查询中检索单个值

我正在尝试根据字符串字段用户名从单个表中检索整数值。 我已经尝试使用存储过程和直接文本。 当我执行存储过程时,我得到正确的返回值; 然而,正确的结果并没有通过。 以下是两组代码 – 直接文本 – public int GetUserRole(string CUSER) { try { SQLCON = new SqlConnection(connectionString); SQLCON.Open(); SQLCommand = new SqlCommand(); SQLCommand.CommandType = CommandType.Text; SQLCommand.Parameters.Add(“USUsername”, SqlDbType.VarChar).Value = CUSER; SQLCommand.CommandText = “SELECT USRole FROM tblUser WHERE USUsername = CUSER”; Int32 USRole = (Int32) SQLCommand.ExecuteScalar(); return USRole; } catch { HttpContext.Current.Response.Redirect(“~/ErrorRedirect.aspx”, false); return 0; […]

以编程方式分离数据库

我有一个数据库“D:\ MDF CONNECTION SAMPLE \ BIN \ DEBUG \ HARMDATABASE.MDF”。 我试图使用以下代码分离或重命名它: SqlConnection conn = new SqlConnection(“Data Source=.\\MSSQLSERVER2008;database=Master;Integrated Security=True;”); SqlCommand cmd = new SqlCommand(“”, conn); cmd.CommandText = @”sys.sp_detach_db D:\MDF CONNECTION SAMPLE\BIN\DEBUG\HARMDATABASE.MDF”; conn.Open(); cmd.ExecuteNonQuery(); cmd.Dispose(); conn.Dispose(); 但是得到一个错误: ‘\’附近的语法不正确。

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 […]

插入,选择和更新DateTime

我有一个时间表,列名为time,数据类型为Date 。 在asp.net中,我想要一个查询来插入日期,另一个在2日期之间选择。 我已经尝试过了: string data = DateTime.Now.ToShortDateString(); //date= 28/10/2014 -> dd/mm/yyyy string comando = “INSERT INTO example (date) values ‘” +data+ “+”‘”; 我使用该查询在2个日期之间进行选择 select * from example where date >= ’25/10/2014’ and date <= '28/10/2014' 我已经尝试使用数据类型varchar但它不起作用。 所以我正在尝试使用数据类型date 。 但是当我执行查询INSERT我收到一个错误 从字符串转换日期和/或时间时转换失败。 有人可以帮帮我吗? 我唯一的问题是将时间节省在表中。 如果可能,我想要日期格式: dd/mm/yyyy 更新: 我有更新行有日期(日期)和varchar(名称)的问题这是我的代码: string comando = “UPDATE example set name=@name WHERE […]

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

我试图通过调用存储过程将数据插入SQL Server数据库,但我收到错误 *过程或函数’Insertion’需要参数’@Emp_no’,但未提供* 我的存储过程称为Insertion 。 我已经彻底检查了它,没有参数丢失,我也用标签检查了它。 标签显示值,但我不知道为什么我收到错误。 我的代码是 try { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Clear(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = “Insertion”; cmd.Connection = con; if (rdb_Male.Checked) { int @Emp_no = Convert.ToInt32(txtbx_Empno.Text); string @Emp_name = txtbx_Emp_Name.Text; double @phone = Convert.ToDouble(txtbx_Phone.Text); string @Email = txtbx_Email.Text; string @Password = txtbx_Pwd.Text; string @Gender = rdb_Male.Text; DateTime @Dob = […]

从ADO.NET和SMSS执行时,具有相同查询计划的相同查询需要大约10倍的时间

我的查询相当复杂,但我已经简化了它来解决这个问题,现在它是一个简单的JOIN,我在SQL Server 2014数据库上运行。 查询是: SELECT * FROM SportsCars as sc INNER JOIN Cars AS c ON c.CarID = sc.CarID WHERE c.Type = 1 当我从SMSS运行此查询并在SQL事件探查器中观察它时,执行大约需要350毫秒。 当我使用Entity Framework或ADO.NET在我的应用程序中运行相同的查询时(我已尝试过两者)。 执行需要4500ms。 ADO.NET代码: using (var connection = new SqlConnection(connectionString)) { connection.Open(); var cmdA = new SqlCommand(“SET ARITHABORT ON”, connection); cmdA.ExecuteNonQuery(); var query = “SELECT * FROM SportsCars as sc INNER […]

将文本框值插入数据库

我是一个新手,想要一些关于C#编程的建议 我想将文本框中的值存储到数据库中。 到目前为止,我有以下内容: string connectionString = @”Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Customers.mdf;Integrated Security=True;User Instance=True”; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); string query = “INSERT INTO ProjectList (ProjectName, BiddingDueDate, Status, ProjectStartDate, ProjectEndDate, AssignedTo, PointsWorth, StaffCredits) VALUES (‘”+projName+”‘, ‘”+bidDueDate+”‘, ‘”+status+”‘, ‘”+projectStartDate+”‘, ‘”+projectEndDate+”‘, ‘”+assignedTo+”‘, ‘”+pointsWorth+”‘, ‘”+aStaffCredits+”‘)”; SqlCommand command = new SqlCommand(query, connection); command.ExecuteNonQuery(); connection.Close(); 代码中没有错误,但我似乎无法弄清楚为什么数据库中没有存储任何内容。

C#中SQL Server存储过程的异步调用

是否可以通过C# 异步调用SQL Server存储过程 ? 我有一个存储过程写一个特定数据库的备份(这可能需要很长时间才能完成),我想在Windows窗体中显示备份过程的进度(为此我使用http://www.wisesoft .co.uk / articles / tsql_backup_restore_progress.aspx )。 或者我应该使用Backgroundworker控件并在backgroundjob(自己的线程)中运行SP?

在C#中从SQL数据库读取值

我刚刚开始学习C#,我可以毫无问题地将数据写入数据库。 但是我在阅读方面遇到了问题,SQL执行得很好,但我遇到了存储问题。 我如何存储应返回的四列,然后将它们显示为消息框? 谢谢。 SqlCommand myCommand = new SqlCommand(“select * from Requests where Complete = 0”, myConnection); SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) Console.WriteLine(myReader[“Username”].ToString()); Console.WriteLine(myReader[“Item”].ToString()); Console.WriteLine(myReader[“Amount”].ToString()); Console.WriteLine(myReader[“Complete”].ToString());