数据库查询结果不能在textbox显示且显示有异常

参考别人的代码之后发现莫得显示,数据库是连接成功的

 try
            {
                using (SqlConnection conn = new SqlConnection())
                {
                    //打开数据连接
                    conn.ConnectionString = connsql;
                    conn.Open();
                    //病名在数据库查询
                    string sql = "Select BM from ICD10 where MC=‘" + Convert.ToString(textBox1.Text) + "'";
                    SqlDataAdapter myda = new SqlDataAdapter(sql, conn);//实例化适配器
                    DataSet ds = new DataSet();//实例化数据表

                    myda.Fill(ds);//保存表数据

                    //string m = Convert.ToString(ds);
                    textBox2.Text = Convert.ToString(ds);
                    conn.Close();
                    
                    MessageBox.Show("查询成功");

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("sorry");

            }


就只要一个字段的值的话不需要SqlDataAdapter ,用SqlCommand的ExecuteScalar取出来就行了
而且题主的sql语句有问题,第一个单引号打成中文状态下的了

img

改成下面的语句


            try
            {
                using (SqlConnection conn = new SqlConnection())
                {
                    //打开数据连接
                    conn.ConnectionString = connsql;
                    conn.Open();
                    //病名在数据库查询
//这里第一个引号中文状态下的,要改英文状态下,而且注意SQL注入替换,这里有SQL注入漏洞
                   string sql = "Select BM from ICD10 where MC='" + textBox1.Text.Replace("'","") + "'";
                   object info=new SqlCommand(sql, conn).ExecuteScalar().ToString();///////取选出来的第一行的第一列的数据

                    textBox2.Text = info==null?"":info.ToString();//可能不存在,需要注意容错处理
                    conn.Close();
                    MessageBox.Show("查询成功");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("sorry");
            }

有帮助或启发麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~

ds是数据集,不能直接转字符串显示
DataTable dt = ds.Table[0];
textBox2.Text = Convert.ToString(dt.Rows[0][0]);
没写判断,还要判断下dt行数列数大于0