【c# – 单个SqlCommand中的多个语句】教程文章相关的互联网学习教程文章

存储过程分页以及参数拼接sql语句、C#调用存储过程【代码】

1.C#调用存储过程,带参数返回的功能,而且是参数化拼接,这样就可以防止sql注入System.Data.SqlClient.SqlParameter[] parameters = { new System.Data.SqlClient.SqlParameter("@i",100), new System.Data.SqlClient.SqlParameter("@j",100), new System.Data.SqlClient...

C# System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。 语句已终止。

问题描述: Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。 语句已终止。 解决方案:出现这个问题,是因为字段的长度问题。比如我们给数据库设置了一个字段 string path,设置它的长度为50个字符。如果我们设置的path的值超过了50个字符。那么就会出现这个错误。...

C# mysql 带参数语句【代码】

带参数语句通常用于批量操作,例如批量插入。 截取一小段代码,修改后做一个简单的示例: 1. 表结构:CREATE TABLE `数据` (`createtime` datetime NOT NULL,`dt` datetime NOT NULL,`val` float(7,2) DEFAULT NULL,PRIMARY KEY (`createtime`,`dt`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;2. 带参数语句的使用public static void Save(DateTime createtime, List<DtVal> dvs) {string sql = "INSERT INTO 数据 (createtime, dt, v...

在C#中使用sql语句更改Oracle数据库的用户密码【代码】

我正在处理一项要求,必须从我的应用程序更改当前用户的oracle连接密码. 我发现我可以使用以下语句通过SQL来完成此任务:ALTER USER *username* IDENTIFIED BY *password*但是,因为用户名和密码未作为带引号的字符串发送到数据库,所以不能使用绑定参数. (此答案也为stated) 当我连接一个字符串并将其作为常规sql查询通过我的Entity Framework DbContext实例发送时,我有一个可行的解决方案,如下所示:using (var context = _dbContex...

插入语句中的错误C#/ MySQL多个选择语句【代码】

我有一个小问题,要从C#中的2个不同的表插入MySql数据库 这是我的代码发生错误的地方command.CommandText = @"INSERT INTO personen (Name, Surname, GenderID, BirthplaceID) VALUE @Name, @Surname, (SELECT GenderID FROM gender WHERE Gender = @GenderID), (SELECT BirthplaceID FROM place WHERE placename = @BirthplaceID);";当我替换“ @”语句并仅填写名称时,它可以正常工作.所以我想知道问题出在哪里. 还有问题不是像一...

如何使用System.Linq.Dynamic运行SQL等效的IN语句?【代码】

我试图通过使用Contains方法通过Dynamic LINQ运行IN语句.使用以下代码时,它可以正常运行:var statuses = new List<string> { "Active" }; result = result.Where("@0.Contains(Status)", statuses.ToArray());但是,当我将其切换为整数数组时,出现错误:var years = new List<int> { 2012 }; result = result.Where("@0.Contains(Year)", years.ToArray());这是我以后使用的错误:No applicable method ‘Contains’ exists in typ...

使用C#中的if语句通过UPDATE更新特定的行(sql)【代码】

如果一门课程已满,则下一个学生将排队等候,依次为1,2,3,依此类推.(0 =不排队,并且布尔值Accepted为true,表示该学生正在参加课程).如果学生退出课程,则课程表中将有一个免费场所. 但是,使用C#和OleDbCommand,一旦课程表有空位,如何更新每个学生行?我希望每个学生的每个空位都少得到1个值,并且如果正在队列#1中的学生(即将到达队列0),我希望它将“接受的布尔值”更新为true(表示该学生正在上课). 我的问题: >我想将每个空闲点的每个...

c#-使用实体框架选择单行.实体框架没有生成sql语句对吗?【代码】

我正在使用Entity Framework作为数据提供者.并且有一个特定的表没有生成sql语句吧.虽然我已经通过了查询条件,但是实体框架仍然为整个表生成sql语句. 该代码是这样的:public IList<Device> GetDeviceByNodeId(string nodeId)=> GetModels(device => device.DeviceNodeId == nodeId).ToList();public virtual IEnumerable<T> GetModels(Func<T, bool> exp)=> EntitySet.Where(exp);生成的sql语句类似于:SELECT [Extent1].[Id] AS ...

c#-System.Data.SqlClient.SqlException:’INSERT语句与FOREIGN KEY约束冲突【代码】

我在调试过程中仍然遇到此错误.我不确定该怎么做,因为我为Person klass添加了AdddressID. 请帮忙!The INSERT statement conflicted with the FOREIGN KEY constraint \”FK_Person_ToAddress\”. The conflict occurred in database \”DirectoryDatabase\”, table \”dbo.Address\”, column ‘AddressID’引发此错误的函数是:public void CreatePersonDB(ref Person person){string CreatePerson =@"INSERT INTO [Person] (Fi...

c#-与Ms Access数据库的Linq数据映射:“在SQL语句末尾缺少分号(;).”【代码】

我一直在使用带有MS Access数据库的Linq数据映射.我照常创建一个OleDbConnection并将其传递给DataContext. 到目前为止,这一直工作良好,它可以基于复杂的查询从表中检索数据,甚至关系也可以自动填充1-N关系中的子实体列表. 但是,当我尝试使用以下代码插入数据时:[Table(Name = "test_table")]public class test_item {[Column(IsPrimaryKey = true, IsDbGenerated = true)]public int field1;[Column]public int field2;}public vo...

c#-将列表转换为逗号分隔的MySQL插入语句【代码】

我有以下两节课;public class CarModels {public List<Model> Model{ get; set; }public CarModels(){Model = new List<Model>();} }public class Model {public int ModelId { get; set; }public string Name { get; set; }public bool Enabled{ get; set; } }如何将数据提取为以下格式 (型号,名称,启用),(型号,名称,启用),(型号,名称,启用)等解决方法: String.Join(",", models.Select(m => String.Format("({0},{1},{2})", m.M...

使用C#在MySQL中更新语句【代码】

我一直在为自己的工作场所建立一个小型库存系统,但偶然发现一个我似乎无法修复的错误private void Update(string num,string name, string quant, string location, string category, string numquery){// "UPDATE Inventory SET Inventorynumber='"+ num +"',Inventory_Name='"+name+"', Quantity ='"+ quant+"',Location ='"+ location+"' Category ='"+ category+"' WHERE Inventorynumber ='"+ numquery +"';";string query = ...

c# – MySql:使用Prepared语句使用.NET / Connector可以更快地调用存储过程吗?【代码】

我一直在阅读有关使用MySql的Prepared语句,并且.NET / Connector确实支持它们. 我想知道的是,如果我使用预准备语句来调用相同的存储过程数千次,那么是否比使用预准备语句更快或更好的性能(因为存储过程应该已经编译好了)? 例如:var mySqlCmd = new MySqlCommand(con, "call sp_someProcedure(@param1, @param2);"); mySqlCmd.Prepare(); mySqlCmd.Parameters.AddWithValue("@param1", ""); mySqlCmd.Parameters.AddWithValue("@p...

C#执行存储过程,或SQL语句,返回DataSet

/// <summary> /// 执行存储过程,或SQL语句,返回DataSet /// </summary> /// <param name="connStr">数据库连接字符串</param> /// <param name="cmdText">SQL语句或存储过程名称</param> /// <param name="ps">参数列表</param> /// <returns>返回DataSet</returns> public static DataSet GetDataSet(SqlConnection connStr, string cmdText, params SqlParameter[] ...

在执行异步触发时忘记await语句并忘记使用ado.net写入数据库,在C#中是否安全?【代码】

在asp.net应用程序中,我想尽可能高效地登录数据库.我使用基本的ADO.NET写入日志数据库,我想做这个异步,所以这是我做的:using (var conn = new SqlConnection(_connectionString)) {using (var cmd = new SqlCommand("INSERT INTO dbo.Logs (TimeStamp,ThreadId,Level,Message,Exception) VALUES (@TimeStamp,@ThreadId,@Level,@Message,@Exception)", conn)) {cmd.Parameters.AddWithValue("@TimeStamp", DateTime.UtcNow);cmd.Pa...