Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#将行插入/更新到SQL Server_C#_.net_Sql_Sql Server_Asp Classic - Fatal编程技术网

如何使用C#将行插入/更新到SQL Server

如何使用C#将行插入/更新到SQL Server,c#,.net,sql,sql-server,asp-classic,C#,.net,Sql,Sql Server,Asp Classic,我不再忙于把一个旧的经典asp网站变成一个.NET网站。另外,我现在正在使用SQL Server 现在我有了一些旧代码 strsql = "select * FROM tabel WHERE ID = " & strID & " AND userid = " & struserid rs1.open strsql, strCon, 2, 3 if rs1.eof THEN rs1.addnew end if if straantal <> 0 TH

我不再忙于把一个旧的经典asp网站变成一个.NET网站。另外,我现在正在使用SQL Server

现在我有了一些旧代码

strsql = "select * FROM tabel WHERE ID = " & strID & " AND userid = " & struserid 
rs1.open strsql, strCon, 2, 3

if rs1.eof THEN
   rs1.addnew
end if

if straantal <> 0 THEN
   rs1("userid") = struserid
   rs1("verlangid") = strID
   rs1("aantal") = straantal
end if

rs1.update
rs1.close
strsql=“从选项卡中选择*,其中ID=“&strID&”和userid=“&struserid
rs1.打开strsql、strCon、2、3
如果rs1.eof那么
rs1.addnew
如果结束
如果straantal为0,则
rs1(“userid”)=struserid
rs1(“verlangid”)=strID
rs1(“安塔尔”)=斯特拉安塔尔
如果结束
rs1.1更新
rs1.close
我想在SQL Server中使用它。更新方式。我该怎么做

  • 如何检查datareader是否为EOF/EOL
  • 如果是EOF/EOL,如何插入行id
  • 如何使用一个函数更新行或删除行

这取决于您使用的方法。。。您打算使用实体框架和LINQ吗?您要使用直接SQL连接吗?我强烈建议您选择EF路线,但简单的SQL代码片段如下所示:

using (var connection = new SqlConnection("Your connection string here"))
{
    connection.Open();
    using (var command = new SqlCommand("SELECT * FROM xyz ETC", connection))
    {                
        // Process results
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                int userId = (int)reader["UserID"];
                string somethingElse = (string)reader["AnotherField"];
                // Etc, etc...
            }
        }
    }

    // To execute a query (INSERT, UPDATE, DELETE etc)
    using (var commandExec = new SqlCommand("DELETE * FROM xyz ETC", connection))
    {
        commandExec.ExecuteNonQuery();
    }
}

您将注意到使用包装在中的各种元素,这是因为您需要在完成后释放内存/连接。这应该能很快回答您的问题,但正如其他人(包括我)所建议的,我会研究实体框架,因为它更强大,但有一个学习曲线附在它上面

如果要使用原始SQL命令,可以尝试以下方法

using (SqlConnection cnn = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand())
{
    cnn.Open();
    cmd.Connection = cnn;

    // Example of reading with SqlDataReader
    cmd.CommandText = "select sql query here";

    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            myList.Add((int)reader[0]);
        }
    }

    // Example of updating row
    cmd.CommandText = "update sql query here";

    cmd.ExecuteNonQuery();
}

您可以使用SQL存储过程进行更新。并通过C#调用此存储过程

创建过程[dbo]。[xyz_更新] ( @帕拉1 @帕拉2 ) 作为 开始 更新表名 设置Fieldname1=@para1, Set Feildname2=@para2


结束

阅读有关SqlDataAdapter或ADO.Net的一般信息