Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengakses parameter output prosedur tersimpan SQL Server di C#

Saya sarankan Anda memasukkan SqlConnection dan SqlCommand menggunakan balok sehingga pembuangannya dengan benar terjamin.

Selain itu, jika saya tidak salah, parameter keluaran hanya tersedia setelah Anda benar-benar membaca kumpulan data yang dihasilkan yang dikembalikan.

Karena Anda sepertinya tidak membutuhkannya sama sekali - mengapa tidak menggunakan .ExecuteNonQuery() alih-alih? Apakah itu menyelesaikan masalah?

using (SqlConnection con = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=answers;Integrated Security=True"))
using (SqlCommand cmd = new SqlCommand("dbo.GetRowCount", con))
{
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.Add(new SqlParameter("@count", SqlDbType.Int));
    cmd.Parameters["@count"].Direction = ParameterDirection.Output;

    con.Open();
    cmd.ExecuteNonQuery();  // *** since you don't need the returned data - just call ExecuteNonQuery
    int ans = (int)cmd.Parameters["@count"].Value;
    con.Close();

    Console.WriteLine(ans);
}

Juga :karena sepertinya Anda hanya benar-benar tertarik pada jumlah baris - mengapa tidak menyederhanakan prosedur tersimpan Anda menjadi seperti ini:

ALTER PROCEDURE GetRowCount
AS
   SELECT COUNT(*) FROM Emp WHERE age > 30;

dan kemudian gunakan cuplikan ini dalam kode C# Anda:

    con.Open();

    object result = cmd.ExecuteScalar();

    if(result != null)
    {
        int ans = Convert.ToInt32(result);
    }

    con.Close();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dapatkan string yang dipisahkan koma dari baris

  2. Bagaimana cara memperluas nilai yang dipisahkan koma menjadi baris terpisah menggunakan SQL Server 2005?

  3. Meminta tipe data XML yang memiliki atribut node xmlns

  4. Kembalikan Masalah Versi SQL Server?

  5. Trik Cepat dan Terbaik Untuk Pemulihan File MDF SQL Server