栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

cmd.ExecuteNonQuery()没有响应,没有返回值

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cmd.ExecuteNonQuery()没有响应,没有返回值

使用环境  VS2019    .net core 3.1

今天搞访问数据库的时候发现代码执行到cmd.ExecuteNonQuery()的时候就没有再继续执行了,也没有返回值。

        ///                 
        /// 用提供的参数,在连接字符串所指定的数据库中执行SQL语句(非查询)
        /// 
        /// 
        /// 使用示例: 
        ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
        /// 
        /// 数据库连接字符串
        /// 命令类型(存储过程、文本等)
        /// 存储过程名或T-SQL语句
        /// 用于执行命令的参数数组
        /// 受命令所影响的行数
        public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            using (SqlConnection conn = SingletonConnectionFactory.GetConnection())
            {
                PrepareCommand(cmd, conn, null, commandType, commandText, commandParameters);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
        }

 但是在sql profiler工具中,可以看到这条sql

我将这段sql取出来执行以下就报错了。。。。。提示我没有提供InvitationID的参数

最后发现是InvitationID在赋值的时候传的是null,但是我在创建表的时候给的默认值是'',随后我看了一下数据库中这个字段的默认值,发现并没有被设置,看样子''是不被认可的。

最后我将InvitationID赋值的时候改成string.Empty,这样生成的sql就是N'',这样就不会这些这些问题了。

public int BindCompanyUser(string Openid, string InvitationID, string OrgCode, string CompanyName)
        {
            string sql = @"INSERT INTO [T_WechatUserInformation]
           ([Openid]
           ,[InvitationID]
            ,[CompanyName]
           ,[OrgCode]
           ,[CreateDate])
     VALUES
           (@Openid
           ,@InvitationID
           ,@CompanyName
           ,@OrgCode
           ,GETDATE())";
            SqlParameter[] sqlParameters = {
                new SqlParameter("@Openid", Openid),
                new SqlParameter("@InvitationID", string.IsNullOrEmpty(InvitationID)?string.Empty:InvitationID),
                new SqlParameter("@CompanyName", CompanyName),
                new SqlParameter("@OrgCode", OrgCode)
            };
            int result = SqlHelper.ExecuteNonQuery(CommandType.Text, sql, sqlParameters);
            return result;
        }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号