这个是类public database()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
SqlConnection sqlconn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["strcon"]);
public int rowNumber(string sqlstr)
{
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
int row=sqlcom.ExecuteNonQuery();
sqlconn.Close();
return row;
}以下是调用上面类,想做到查找表中是否有该条记录(表中是有该条记录的),如果有,就修改表中数据,如果没有就增加记录。但是无论有没有记录db.rowNumber(scd)都是返回-1,如果能得到上面类中row的值呢????
if (db.rowNumber(scd) > 0)
{
string sql_dingshu_fx_update = "update dingshu_fx set number_dg=number_dg + '" + number + ",number_qs=number_qs+ '" + number + "' where xnd like '%" + xnd + "%' and dwdm like '%" + dwdm + "%' and xslb like '%" + xslb + "%' and jc_id=" + jc_id;
db.DataCom(sql_dingshu_fx_update);
}
else
{
string sql_dingshu_fx = "insert into dingshu_fx" + "(xnd,xslb,jc_id,bookname,number_dg,number_ff,number_qs,dwdm,dwmc)" +
"values('" + xnd + "','" + xslb + "','" + jc_id + "','" + bookname + "','" + number + "','" + "0','" + number + "','" + dwdm + "','" + dwmc + "')";
db.DataCom(sql_dingshu_fx);
}
//注意,它返回的是一个boject类型的数据,你自己要进行数据类型转换
//为什么我强调说它识别最后一条SELECT语句的结果集呢?因为在MS SQL 2000版本以后,是可以同时执行多条SQL语句的,比如,我现在同时执行3条SQL语句,INSERT INTO MyTable ([ID]) VALUES (1); UPDATE MyTable SET [ID]=2; SELECT COUNT([ID]) AS RecordNum FROM MyTable//我把这3打语句同时传给object obj=cmd.ExecuteScalar(); 则它会完成执行,这时候,如果不出错,那么,最终该办法返回的值是最后一条语句SELECT COUNT([ID]) AS RecordNum FROM MyTable里的RecordNum,并且无论你这个结果集有多少行多少列,永远只返回第一行第一列(也就是像表格里的第一个单元)的值
因此,看看你的sql语句是否正确了