参考别人的代码之后发现莫得显示,数据库是连接成功的
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语句有问题,第一个单引号打成中文状态下的了
改成下面的语句
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