本人第一问...............
使用access数据库,执行插入,想返回刚插入数据的ID,代码如下
sqlstr = "insert into class(name,parentID,leverN,path) values(@name,@parentID,@leverN,@path) select scope_identity()";OleDbParameter[] paras ={new OleDbParameter("@name",OleDbType.VarChar),
new OleDbParameter("@parentID",OleDbType.Integer),
new OleDbParameter("@leverN",OleDbType.Integer),
new OleDbParameter("@path",OleDbType.VarChar)};
paras[0].Value = newsclass.Name;
paras[1].Value = newsclass.ParentID;
paras[2].Value = newsclass.LeverN;
paras[3].Value = newsclass.Path;
int id = DataHelp.AccessHelper.ExeSqlWithParaReturnID(sqlstr, paras);//调用方法ExeSqlWithParaReturnID()看下面:
------------------------------------------------------------
public static int ExeSqlWithParaReturnID(string sqlstr, OleDbParameter[] parms)
{
int id = 0;
using (OleDbConnection conn = new OleDbConnection(myconn))
{
OleDbCommand cmd = conn.CreateCommand();
PrepareCmd(cmd, parms);
cmd.CommandText = sqlstr;
conn.Open();
try
{
id = Convert.ToInt32(cmd.ExecuteScalar());
}
catch (OleDbException e) { conn.Close(); throw new Exception(e.Message); }//抛出异常,说 SQL 语句的结束位置缺少分号 (;)。
finally
{
conn.Close();
}
}
return id;
}
各位高手,怎么解决啊.....
使用access数据库,执行插入,想返回刚插入数据的ID,代码如下
sqlstr = "insert into class(name,parentID,leverN,path) values(@name,@parentID,@leverN,@path) select scope_identity()";OleDbParameter[] paras ={new OleDbParameter("@name",OleDbType.VarChar),
new OleDbParameter("@parentID",OleDbType.Integer),
new OleDbParameter("@leverN",OleDbType.Integer),
new OleDbParameter("@path",OleDbType.VarChar)};
paras[0].Value = newsclass.Name;
paras[1].Value = newsclass.ParentID;
paras[2].Value = newsclass.LeverN;
paras[3].Value = newsclass.Path;
int id = DataHelp.AccessHelper.ExeSqlWithParaReturnID(sqlstr, paras);//调用方法ExeSqlWithParaReturnID()看下面:
------------------------------------------------------------
public static int ExeSqlWithParaReturnID(string sqlstr, OleDbParameter[] parms)
{
int id = 0;
using (OleDbConnection conn = new OleDbConnection(myconn))
{
OleDbCommand cmd = conn.CreateCommand();
PrepareCmd(cmd, parms);
cmd.CommandText = sqlstr;
conn.Open();
try
{
id = Convert.ToInt32(cmd.ExecuteScalar());
}
catch (OleDbException e) { conn.Close(); throw new Exception(e.Message); }//抛出异常,说 SQL 语句的结束位置缺少分号 (;)。
finally
{
conn.Close();
}
}
return id;
}
各位高手,怎么解决啊.....
解决方案 »
- 为什么DataTable从新排序后数据丢失了
- 关于ImageBox显示图片的问题
- Dataset的效率和稳定性如何?不知道大家有没有遇到过这个问题?
- 哪里有 ASP.net 的学习资料,最好要 chm 的 ,哪个大侠给我一份吧。
- treeview RenderControl后产生的html不对,ID都一样,而且-+都是doPostback了
- 如何实现无提示关闭IE窗口
- 急求解: 更改Web窗体页类继承后的很奇怪的问题!!!
- input控件的问题
- 静态html转aspx求助
- 打开2个IE浏览器就会起2个不同的SESSION吗?
- 急问一下,sql数据库怎样上传呀
- iso-8859-1编码的XML文档解析时乱码该怎么解决
试过了 ,说 :"在 SQL 语句结尾之后找到字符。"
这句出错
id = Convert.ToInt32(cmd.ExecuteScalar());
在sql server里面就可以的,access就不行
access不支持这个,插入后返回最大值来处理吧
sqlstr = "insert into class(name,parentID,leverN,path) values(@name,@parentID,@leverN,@path); select scope_identity()";
加; 试过了
access不支持这个,插入后返回最大值来处理吧