数据库中User表有三个字段
UID int 标示 自动加1(自增长类型的)
Name varchar(50)
PassWord varchar(50)
现在要往表里插入一条记录,插入成功的同时返回自动插入的UID的值
要求sql语句要写在程序里,不能用存储过程,用存储过程返回值的话我也会!我现在程序是这样写的,请各位指点一下加上几行,把UID的值返回!
private string m_InsertUserSQL = @"insert into Users values(@Name,@PassWord)"SqlCommand cmd = new SqlCommand();
cmd.Parameters.Add(new SqlParameter("@Name",SqlDbType.VarChar,50));
cmd.Parameters.Add(new SqlParameter("@PassWord",SqlDbType.VarChar,50));
cmd.Parameters["@Name"].Value = _SUserData.LoginName.ToString().Trim();
cmd.Parameters["@PassWord"].Value = _SUserData.PassWord.ToString().Trim();using (SqlConnection conn = SCommonClass.SystemData.GetConnection())
{
conn.Open();
using(System.Data.SqlClient.SqlTransaction trans = conn.BeginTransaction())
{
try
{
cmd.CommandText = this.m_InsertUserSQL;
cmd.CommandType = CommandType.Text;
cmd.Transaction = trans ;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
trans .Commit();
}
catch(System.Exception ex)
{
trans.Rollback();
}
finally
{
conn.Close();
}
}
}
UID int 标示 自动加1(自增长类型的)
Name varchar(50)
PassWord varchar(50)
现在要往表里插入一条记录,插入成功的同时返回自动插入的UID的值
要求sql语句要写在程序里,不能用存储过程,用存储过程返回值的话我也会!我现在程序是这样写的,请各位指点一下加上几行,把UID的值返回!
private string m_InsertUserSQL = @"insert into Users values(@Name,@PassWord)"SqlCommand cmd = new SqlCommand();
cmd.Parameters.Add(new SqlParameter("@Name",SqlDbType.VarChar,50));
cmd.Parameters.Add(new SqlParameter("@PassWord",SqlDbType.VarChar,50));
cmd.Parameters["@Name"].Value = _SUserData.LoginName.ToString().Trim();
cmd.Parameters["@PassWord"].Value = _SUserData.PassWord.ToString().Trim();using (SqlConnection conn = SCommonClass.SystemData.GetConnection())
{
conn.Open();
using(System.Data.SqlClient.SqlTransaction trans = conn.BeginTransaction())
{
try
{
cmd.CommandText = this.m_InsertUserSQL;
cmd.CommandType = CommandType.Text;
cmd.Transaction = trans ;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
trans .Commit();
}
catch(System.Exception ex)
{
trans.Rollback();
}
finally
{
conn.Close();
}
}
}
解决方案 »
- C# Winform 无法加载 DLL “SQLite.Interop.DLL”
- 主窗体(form1)启动时调用子窗体(form2)里一个textBox值
- 正则表达式 在线求助(急)
- 哪有c#的简单例子供下载啊
- 在一个WinForm里如何播放Flash,如何取得本地硬盘里的播放路径,如何建立播放屏幕。
- 自动对每天数据进行数据统计
- 有没有办法将字符串转换为变量?
- 签名中的 ELEM_TYPE 非法或尚未实现。
- 框架与框架之间传值问题?
- 如何将dataset中name="rop"的数据检索出来,并在datagrid中显示?
- 我是新手 帮我看看我的程序哪里错了
- 我需要把本机上的一数据库DataBase1里的Table1表和Table2表放到本机上的另一数据库DataBase2里面去,用ADO.NET怎么实现?
int UID = (int)cmd.ExecuteScalar();
int UID = (int)cmd.ExecuteScalar();多条SQL语句使用一个 Command 执行是可以的,试一试~
当执行到int UID = (int)cmd.ExecuteScalar();时,就会抛出"指定转换无效"的异常!
以前用存储过程可以直接用output返回,现在不用存储过程了不知道该怎么办
不过要这样转换
int UID = Convert.ToInt32(cmd.ExecuteScalar());
谢谢拉
不行吗?
在新增的语句后加上这么一句做为返回参数