1

I am quit busy turning a old classic asp website to a .NET site. also i am now using SQL Server.

Now I have some old code

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

I want to use this in SQL Server. The update way. How can I do this?

  • How can I check if the datareader is EOF/EOL
  • How can I insert a row id it is EOF/EOL
  • How can I update a row or delete a row with one function?
4

3 に答える 3

2

生の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();
}
于 2012-11-13T09:13:21.900 に答える
0

Update には SQL ストア プロシージャを使用できます。そして、C# を介してこのストア プロシージャを呼び出します。

プロシージャを作成 [dbo].[xyz_Update] ( @para1 @para2 ) AS BEGIN Update tablename Set Fieldname1=@para1, Set Fieldname2=@para2

終わり

于 2012-11-20T12:31:28.317 に答える
0

使用する方法によって異なります... Entity Framework と 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();
    }
}

usingでラップされたさまざまな要素に注意してください。これは、終了時にメモリ/接続を解放する必要があるためです。これはあなたの質問にすぐに答えるはずですが、他の人(私を含む)が示唆しているように、Entity Frameworkははるかに強力ですが、学習曲線が付随しているため、Entity Frameworkを調査します。

于 2012-11-13T09:07:24.313 に答える