小白遇到2个问题,期末设计求帮助

m0_37101091 2016-12-20 10:10:49


这是第一个遇到的问题

详细那段代码如下:
private void cmb_name_Click(object sender, EventArgs e)
{
string tempstr = cmb_name.Text;
DataSet chanagenameds = myoperate.getds("select * from patient where name='" + tempstr + "'", "patient");
txt_name.Text = chanagenameds.Tables[0].Rows[0]["name"].ToString();
txt_sidno.Text = chanagenameds.Tables[0].Rows[0]["sidno"].ToString();
txt_firstphone.Text = chanagenameds.Tables[0].Rows[0]["firstphone"].ToString();
txt_firstman.Text = chanagenameds.Tables[0].Rows[0]["firstman"].ToString();
txt_firstaddress.Text = chanagenameds.Tables[0].Rows[0]["firstaddress"].ToString();
txt_email.Text = chanagenameds.Tables[0].Rows[0]["e_mail"].ToString();
txt_cellphone.Text = chanagenameds.Tables[0].Rows[0]["cellphone"].ToString();
txt_celladdress.Text = chanagenameds.Tables[0].Rows[0]["celladdress"].ToString();
cmb_firstquery.SelectedItem = chanagenameds.Tables[0].Rows[0]["firstquery"].ToString();
cmb_sex.SelectedItem = chanagenameds.Tables[0].Rows[0]["sex"].ToString();
cmb_sidtype.Text = chanagenameds.Tables[0].Rows[0]["sidtype"].ToString();
dtp_birthday.Value = Convert.ToDateTime(chanagenameds.Tables[0].Rows[0]["birthday"]);
dtp_recdate.Value = Convert.ToDateTime(chanagenameds.Tables[0].Rows[0]["recorddate"]);

}

第二个问题是:


我要把数据存放到数据库上,按保存病人


然后就出现了这个问题,可是看了好多次,标点符号没错呀..

具体的代码如下:
namespace 陈少伟
{
class databaseoperate
{
//使用指定的连接字符串连接数据库,返回一个SqlConnection对象
public SqlConnection getcon()
{
string str = @"Data Source=.;Initial Catalog=HIS;Integrated Security=True";

//实例化SqlConnection对象并进行返回
SqlConnection myconn = new SqlConnection(str);
return myconn;
}
//执行指定的SQL语句,返回一个SqlDataReader对象
public SqlDataReader getread(string tempstr)
{
SqlConnection sqlconn = this.getcon();//获取连接
//实例化一个具有指定连接和命令的SqlCommand对象
SqlCommand sqlcom = new SqlCommand(tempstr, sqlconn);
//打开连接
sqlconn.Open();
//调用ExecuteReader方法返回一个SqlDataReader对象
SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);
return sqlread;
}
//执行指定的SQL语句,返回一个DataSet对象
public DataSet getds(string tempstr, string temptable)
{
SqlConnection mycon = this.getcon();//获取连接
//使用指定的连接和SQL命令创建一个SqlDataAdapter对象
SqlDataAdapter myadapter = new SqlDataAdapter(tempstr, mycon);
//实例化一个DataSet
DataSet myds = new DataSet();
//使用SqlDataAdapter对象填充数据集
myadapter.Fill(myds, temptable);
//返回DataSet对象
return myds;
}
//执行指定的SQL语句,适用于Insert/Update/Delete语句
public void getcom(string tempstr)
{
SqlConnection sqlconn = this.getcon();//获取连接
sqlconn.Open();//打开连接
//实例化一个SqlCommand对象
SqlCommand sqlcom = new SqlCommand(tempstr, sqlconn);
//执行SQL语句
sqlcom.ExecuteNonQuery();
//关闭并释放连接
sqlconn.Close();
sqlconn.Dispose();
}
//
public DataSet getys(string tempsqlstr, string tempsqltable)
{
SqlConnection myconn = this.getcon();
SqlDataAdapter da = new SqlDataAdapter(tempsqlstr, myconn);
DataSet ds = new DataSet();
da.Fill(ds, tempsqltable);

return ds;
}

代码有点多,可能很麻烦看,期末的课程设计,万分感激
...全文
245 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-12-20
  • 打赏
  • 举报
回复
#5 截图中,执行 SQL 指令处的最后为 + "','"); 显然是错误的!
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 qq_36199404 的回复:
第一个name没有值,第二个sql语句有错误
第一个那我需要怎么修改 第二个是语句有错,换种方式却发现显示添加成功而写入不了数据进数据库
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复
引用 4 楼 hanjun0612 的回复:
1 数组越界异常,报错挺明显了,调试这句话的table和row就知道了 txt_name.Text = chanagenameds.Tables[0].Rows[0]["name"].ToString(); 2 sql语句错误
第二个改了一下方案 可以了,可是显示添加成功又写入不进数据库 第一个..还是不懂
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复
引用 1 楼 zhangsan01 的回复:
是不是sql语句写错了,贴上来看看,


正怒月神 2016-12-20
  • 打赏
  • 举报
回复
1 数组越界异常,报错挺明显了,调试这句话的table和row就知道了 txt_name.Text = chanagenameds.Tables[0].Rows[0]["name"].ToString(); 2 sql语句错误
巴士上的邂逅 2016-12-20
  • 打赏
  • 举报
回复
1、应该是查到0行,Row【0】就会报错 2、标点符号报错是你SQL语句里的标点有问题,是tempstr的问题
qq_36199404 2016-12-20
  • 打赏
  • 举报
回复
第一个name没有值,第二个sql语句有错误
一落山川_ 2016-12-20
  • 打赏
  • 举报
回复
是不是sql语句写错了,贴上来看看,
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复


谢谢各位大神 我终于解决了第二个问题了 最后改成上面那样,也就标点的错误,真是一个个标点 对照错误找
感谢感谢,
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复
引用 9 楼 q18665401 的回复:
解决了没?
第一个的,报错是说你要获取的表里面没有行。你断点,看看dataset里面有没有datatable,再看看有没有rows,看里面的count是多少。
第二个的sql,在最后的那一行,将末尾的+ " ' , ' " 改为:+ " ' " 。


第一个改了,报错,


文末修改的对应的就是这个日期控件
m0_37101091 2016-12-20
  • 打赏
  • 举报
回复
引用 10 楼 q18665401 的回复:
建议楼主在拼sql的时候,考虑用用StringBuilder。
查了下StringBuilder相比string好像更好使
  • 打赏
  • 举报
回复
建议楼主在拼sql的时候,考虑用用StringBuilder。
  • 打赏
  • 举报
回复
解决了没? 第一个的,报错是说你要获取的表里面没有行。你断点,看看dataset里面有没有datatable,再看看有没有rows,看里面的count是多少。 第二个的sql,在最后的那一行,将末尾的+ " ' , ' " 改为:+ " ' " 。

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧