2017-05-03 114 views
0

我能够使用我在此处发表评论的代码执行插入操作。如何使用MySqlDataAdapter实现相同?我写的代码不起作用。如何使用ASP.NET中的MySqlDataAdapter进行插入操作

string sid, sname; 
      sid = Request.QueryString["StudentId"].ToString(); 
      sname = Request.QueryString["StudentName"].ToString(); 
      MySqlDataAdapter da = new MySqlDataAdapter("insert into tblStudent (StudentId, StudentName) values ('" + sid.ToString() + "', '" + sname.ToString() + "')", con); 
      // con.Open(); 
     // MySqlCommand cmd = con.CreateCommand(); 
     //  cmd.CommandType = CommandType.Text; 
    //  cmd.CommandText = "insert into tblStudent (StudentId, StudentName) values('" + sid.ToString() + "', '" + sname.ToString() + "')"; 
    //   cmd.ExecuteNonQuery(); 
//   con.Close(); 

有帮助的建议。

+1

的努力MySqlCommand直接。 MySqlDataAdapter对于这一点来说是矫枉过正,并且更难以单独使用这个任务 – Steve

+0

'MySqlDataAdapter'更适合填充'Dataset'。如我错了请纠正我。 –

+1

在你做任何事情之前,你需要阅读,理解并开始使用参数化查询。你的代码对于sql注入是开放的,而bobby表就喜欢这种类型的东西。 http://bobby-tables.com/ –

回答

0

要插入一条记录,您可以简单地使用MySqlCommand而不是MySqlDataAdapter。 MySqlDataAdapter具有许多功能,并允许您对数据执行插入,更新和删除操作,但首先需要到达服务器以填充DataTable,然后向数据表添加新记录并最终调用Update。不值得,如果你只需要插入一条记录

但是,如果你真的想尝试使用DataAdapter的,然后如果你想只插入与记录工作,你需要这个代码

string sid, sname; 
sid = Request.QueryString["StudentId"].ToString(); 
sname = Request.QueryString["StudentName"].ToString(); 
string selectText = "SELECT studentID, StudentName FROM tblStudent WHERE 1=0"; 
using(MySqlDataAdapter da = new MySqlDataAdapter(selectText, con)) 
{ 
    MySqlCommandBuilder bd = new MySqlCommandBuilder(da); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    // This is important, because Update will work only on rows 
    // present in the DataTable whose RowState is Added, Modified or Deleted 
    dt.Rows.Add(sid, sname); 
    da.Update(dt); 
} 
+0

只是为了试验。谢谢 :) –

相关问题