blueforgetmenot 2024-08-27 10:06 采纳率: 100%
浏览 10
已结题

c# 字符串查询ExecuteScalar执行问题


string s2= textBox1.Text.Replace(" ", "");
                string connectionString = "Data Source=it-bak;Initial Catalog=nxhtest;Persist Security Info=True;User ID=sa;Password=123456;";
                /////////////////////////
                string selectstr = "select USER_ID from account where USER_ID = '" + s2 + "' "; ;
                
                using (SqlConnection conn = new SqlConnection(connectionString)) 
                {
                    SqlCommand command = new SqlCommand(selectstr, conn);
                    
                    conn.Open();
                    int row = 0;                 
                        
                        row = Convert.ToInt32(command.ExecuteScalar());
                        if (row <= 0)
                        {
                            MessageBox.Show("可以进行新增操作!");
                        }
                        else
                        {
                            MessageBox.Show("该ID已经被注册,请修改你的注册ID!");
                        }
                }

上一段小程序是作一个表插入操作前的条件检测——要求新增的ID不要与已有的ID重复,应该非常简单。但是实际执行的时候出现了这么情况:1、若查询对应 textBox1里面输入的是纯数字,都正常。2、若输入的是字母就有两种情况。一种是若输入的字符串是表中没有的,执行正常,逻辑判断也正常,提示"可以进行新增操作!"。但若是输入的字符串是表中已存在的,结果程序调试的时候执行command.ExecuteScalar()出错——“{"输入字符串的格式不正确。"},很懵!初尝试C#,没想到这么绕人。期间尝试改用参数传递,也是这样,这是什么鬼? 数据库基表对应字段类型为nchar.求指点!

  • 写回答

2条回答 默认 最新

  • 我可是森森呢 2024-09-02 16:38
    关注

    我建议了解下int.TryPrase()函数,double、bool等都有的,带Try就是尝试转换,不带就是强制转换(会报错)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 8月27日