C# Sql插入或更新

C# Sql插入或更新,c#,sql,asp-classic,sql-server-ce,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

我需要快速编写代码来插入/更新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#端口是什么?谢谢

假设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以使用更新语法。

希望这能让您开始。引用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();

当我看到rs(“数据”)=时,我意识到,我立即看到了“选择”,并认为问题标题是错误的,老实说。这确实是OP代码中“最近的C#port”。但是,用这种方法来解决这个问题是令人憎恶的。NET@Jamiec我同意,但对于转换现有代码,它有助于将技术与使用SQL或OLEDB库联系起来。稍后,我将需要使用纯.NET方式。