sql >> データベース >  >> RDS >> Sqlserver

名前が存在する場合は更新します。それ以外の場合は、SQLServerに挿入します。

    すべきです

    • パラメータを使用する クエリ内-常に! -例外なし
    • IF EXISTS()を処理する単一のクエリを作成します サーバー上の
    • 一般的に受け入れられているADO.NETのベストプラクティスを使用して、using() {....}に物を入れます。 ブロックなど

    このコードを試してください:

    public void SaveData(string filename, string jsonobject)
    {
        // define connection string and query
        string connectionString = "Data Source=.;Initial Catalog=;Integrated Security=True";
        string query = @"IF EXISTS(SELECT * FROM dbo.T_Pages WHERE pagename = @pagename)
                            UPDATE dbo.T_Pages 
                            SET pageinfo = @PageInfo
                            WHERE pagename = @pagename
                        ELSE
                            INSERT INTO dbo.T_Pages(PageName, PageInfo) VALUES(@PageName, @PageInfo);";
    
        // create connection and command in "using" blocks
        using (SqlConnection conn = new SqlConnection(connectionString))
        using (SqlCommand cmd = new SqlCommand(query, conn))
        {
            // define the parameters - not sure just how large those 
            // string lengths need to be - use whatever is defined in the
            // database table here!
            cmd.Parameters.Add("@PageName", SqlDbType.VarChar, 100).Value = filename;
            cmd.Parameters.Add("@PageInfo", SqlDbType.VarChar, 200).Value = jsonobject;
    
            // open connection, execute query, close connection
            conn.Open();
            int rowsAffected = cmd.ExecuteNonQuery();
            conn.Close();
        }
    }
    


    1. 2つの行間の時間差を計算する

    2. SQLiteREPLACEステートメント

    3. MySQLを使用したピボットテーブル

    4. PyInstaller、スペックファイル、ImportError:「blah」という名前のモジュールがありません