多条数据录入问题 请问,如果我有一个表格比如说时学生成绩单,列为姓名、数学成绩、语文成绩、历史成绩,类似于此类表格,但是不想每个学生进行一次数据存储,而是多录入一些,比如说十个学生的各科成绩录入完成后,一同insert到数据库,如何实现呢?用什么控件?或者是代码是什么样的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样应该是可以实习的,感觉不难。你可以用自动生成那种表格,生成10行,让老师录入,然后点保存的时候用事务处理一同Insert数据库 http://www.cnblogs.com/huangjianhuakarl/archive/2009/02/03/1381710.html可以参考这个 一定要用事件。public static bool addUser(User user) { if(user == null) return false; string SQLSTR1 = "insert into `user` values(@A,@B,@C,@D,@E,@F,@G)"; string SQLSTR2 = "insert into userdetail values(@A,@B,@C,@D,@E)"; SqlConnection conn = DBConn.SqlConnection(CONSTR); SqlTransaction autoCommit = conn.BeginTransaction();//建立一个事务 SqlCommand _Sqlcommand = new SqlCommand(SQLSTR1, conn); _Sqlcommand.Transaction = _Transaction; if(conn == null) return false; bool success = false; try { SqlParameter[] _Parmeter1 = new SqlParameter[] { new SqlParameter("@A",SqlDbType.VarChar), //pstat1.setString(1, user.getId()); new SqlParameter("@B",SqlDbType.VarChar), // pstat1.setString(2, StringUtil.str(user.getPw())); new SqlParameter("@C",SqlDbType.Int), // pstat1.setNull(3, Types.INTEGER); or null new SqlParameter("@D",SqlDbType.Int), // pstat1.setInt(4,user.getDutyid()); or null new SqlParameter("@E",SqlDbType.VarChar), // pstat1.setString(5, user.getCalllevel()); new SqlParameter("@F",SqlDbType.VarChar), //null pstat1.setString(6, null); new SqlParameter("@G",SqlDbType.DateTime) //null pstat1.setDate(7, null); }; _Parmeter1[0].Value = user.getId(); _Parmeter1[1].Value = user.getPw(); _Parmeter1[2].Value = user.getPw(); _Parmeter1[3].Value = user.getDutyid(); //判断可能为NULL _Parmeter1[4].Value = user.getCalllevel(); //判断可能为NULL _Parmeter1[5].Value = DBNull.Value; _Parmeter1[6].Value = DBNull.Value; _Sqlcommand.Parameters = _Parmeter1; bool rs1 = (_Sqlcommand.ExecuteNonQuery() == 1); _Sqlcommand.CommandText = SQLSTR2; SqlParameter[] _Parmeter2 = new SqlParameter[] { new SqlParameter("@A",SqlDbType.VarChar), // pstat2.setString(1, user.getId()); new SqlParameter("@B",SqlDbType.VarChar), // pstat2.setString(2, user.getNickname()); new SqlParameter("@C",SqlDbType.VarChar), // pstat2.setString(3, user.getTruename()); new SqlParameter("@D",SqlDbType.VarChar), // pstat2.setString(4, user.getBirthday()); new SqlParameter("@E",SqlDbType.VarChar), // pstat2.setString(5, user.getEmail()); }; _Parmeter2[0].Value = user.getId(); _Parmeter2[1].Value = user.getNickname(); _Parmeter2[2].Value = user.getTruename(); _Parmeter2[3].Value = user.user.getBirthday(); //判断可能为NULL _Parmeter2[4].Value = user.getEmail(); bool rs2 = (_Sqlcommand.ExecuteNonQuery() == 1); success = rs1 && rs2; } catch (SqlException e) { //e.printStackTrace(); } finally { try { if(success) { autoCommit.Commit(); } else { autoCommit.Rollback(); } } catch (SqlException e) { //e.printStackTrace(); } conn.Close(); } return success; } 只是一个事例,不一定对,也是别人告诉我的,希望能给你一点启发。 也可以组装成如下SQL 一句搞定insert into Table(a,b,c,d)select 'a1' as a,'b1' as b,'c1' as c,'d1' as dunionselect 'a2' as a,'b2' as b,'c2' as c,'d2' as d TreeView不能选中子节点 如何写一个session,session结束时,自动跳转到默认页 关于一个链接ACCESS数据库的问题 来自“猛子e章”的一个问题想和大家一起讨论一下。。 向把现在的有一个网站改称三层的。大家给点建议。 并不是所有的客户端都允许javascript怎么办? 高分求救:用X.509证书对Soap消息进行签名的遇到一个奇怪的问题! 怎么弹出新窗口? label 的问题 对不起,请教,如何把数据库中间的IMAGE字段里面的中文解析出来 |zyciis| 一个网站有很多个模块 应该如何管理 大家来支支招 谢谢 请教vs2005开发.net问题!
你可以用自动生成那种表格,生成10行,让老师录入,
然后点保存的时候用事务处理一同Insert数据库
可以参考这个
public static bool addUser(User user)
{
if(user == null) return false;
string SQLSTR1 = "insert into `user` values(@A,@B,@C,@D,@E,@F,@G)";
string SQLSTR2 = "insert into userdetail values(@A,@B,@C,@D,@E)";
SqlConnection conn = DBConn.SqlConnection(CONSTR);
SqlTransaction autoCommit = conn.BeginTransaction();//建立一个事务
SqlCommand _Sqlcommand = new SqlCommand(SQLSTR1, conn);
_Sqlcommand.Transaction = _Transaction; if(conn == null) return false;
bool success = false;
try
{
SqlParameter[] _Parmeter1 = new SqlParameter[]
{
new SqlParameter("@A",SqlDbType.VarChar), //pstat1.setString(1, user.getId());
new SqlParameter("@B",SqlDbType.VarChar), // pstat1.setString(2, StringUtil.str(user.getPw()));
new SqlParameter("@C",SqlDbType.Int), // pstat1.setNull(3, Types.INTEGER); or null
new SqlParameter("@D",SqlDbType.Int), // pstat1.setInt(4,user.getDutyid()); or null
new SqlParameter("@E",SqlDbType.VarChar), // pstat1.setString(5, user.getCalllevel());
new SqlParameter("@F",SqlDbType.VarChar), //null pstat1.setString(6, null);
new SqlParameter("@G",SqlDbType.DateTime) //null pstat1.setDate(7, null);
}; _Parmeter1[0].Value = user.getId();
_Parmeter1[1].Value = user.getPw();
_Parmeter1[2].Value = user.getPw();
_Parmeter1[3].Value = user.getDutyid(); //判断可能为NULL
_Parmeter1[4].Value = user.getCalllevel(); //判断可能为NULL
_Parmeter1[5].Value = DBNull.Value;
_Parmeter1[6].Value = DBNull.Value;
_Sqlcommand.Parameters = _Parmeter1;
bool rs1 = (_Sqlcommand.ExecuteNonQuery() == 1); _Sqlcommand.CommandText = SQLSTR2;
SqlParameter[] _Parmeter2 = new SqlParameter[]
{
new SqlParameter("@A",SqlDbType.VarChar), // pstat2.setString(1, user.getId());
new SqlParameter("@B",SqlDbType.VarChar), // pstat2.setString(2, user.getNickname());
new SqlParameter("@C",SqlDbType.VarChar), // pstat2.setString(3, user.getTruename());
new SqlParameter("@D",SqlDbType.VarChar), // pstat2.setString(4, user.getBirthday());
new SqlParameter("@E",SqlDbType.VarChar), // pstat2.setString(5, user.getEmail()); };
_Parmeter2[0].Value = user.getId();
_Parmeter2[1].Value = user.getNickname();
_Parmeter2[2].Value = user.getTruename();
_Parmeter2[3].Value = user.user.getBirthday(); //判断可能为NULL
_Parmeter2[4].Value = user.getEmail();
bool rs2 = (_Sqlcommand.ExecuteNonQuery() == 1);
success = rs1 && rs2;
}
catch (SqlException e)
{
//e.printStackTrace();
}
finally
{
try
{
if(success)
{
autoCommit.Commit();
}
else
{
autoCommit.Rollback();
}
}
catch (SqlException e)
{
//e.printStackTrace();
}
conn.Close();
}
return success;
} 只是一个事例,不一定对,也是别人告诉我的,希望能给你一点启发。
insert into Table(a,b,c,d)
select 'a1' as a,'b1' as b,'c1' as c,'d1' as d
union
select 'a2' as a,'b2' as b,'c2' as c,'d2' as d