Sql插入或更新

时间:2011-07-04 12:13:58

标签: c# sql asp-classic sql-server-ce

我需要快速编写代码来插入/更新SQL数据。在经典的ASP / VBScript中,我可以这样做:

  Set rs = Server.CreateObject("adodb.Recordset")
  sql = "SELECT * FROM _table WHERE id=" & id 
  rs.Open sql, cn, 1, 3 

  If rs.recordcount = 0 Then 
    rs.AddNew 
  End If 

  rs("data") = data

  rs.Update 
  rs.Close 

此代码段的最近C#端口是什么?谢谢!

2 个答案:

答案 0 :(得分:3)

假设MS-SQL:

using (SqlConnection conn = new SqlConnection("Connection String"))
using (SqlCommand comm = new SqlCommand("INSERT INTO MyTable (Name, Age) VALUES (@name, @age)", conn))
{    
    conn.Open();

    comm.Parameters.AddWithValue("@name", "Adam");
    comm.Parameters.AddWithValue("@age", 25);

    comm.ExecuteNonQuery();
}

连接字符串显然需要充实,参数化的SQL需要确认,但这是你需要的开始。

您无需担心关闭,因为using语句会为您执行此操作。

更新:不太了解经典ASP,我应该澄清这段代码只进行插入而不是更新,如果需要进行更新,请更改SQL以使用更新语法

答案 1 :(得分:2)

希望这能让你开始。引用ADODB类:

ADODB.Connection cn = new ADODB.Connection();
cn.Open("Provider=etc...", null, null, 0);
ADODB.Recordset rs = new ADODB.Recordset();

String sql = "SELECT * FROM _table WHERE id=" & id;
rs.Open(sql, cn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, -1);

if (rs.RecordCount == 0)
  rs.AddNew;

rs("data") = data;
rs.Update();
rs.Close();
cn.Close();