Saya ingin menjalankan prosedur tersimpan ini dari program C #.
Saya telah menulis prosedur tersimpan berikut ini di jendela kueri SqlServer dan menyimpannya sebagai disimpan1:
use master
go
create procedure dbo.test as
DECLARE @command as varchar(1000), @i int
SET @i = 0
WHILE @i < 5
BEGIN
Print 'I VALUE ' +CONVERT(varchar(20),@i)
EXEC(@command)
SET @i = @i + 1
END
Diedit:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace AutomationApp
{
class Program
{
public void RunStoredProc()
{
SqlConnection conn = null;
SqlDataReader rdr = null;
Console.WriteLine("\nTop 10 Most Expensive Products:\n");
try
{
conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI");
conn.Open();
SqlCommand cmd = new SqlCommand("dbo.test", conn);
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
/*while (rdr.Read())
{
Console.WriteLine(
"Product: {0,-25} Price: ${1,6:####.00}",
rdr["TenMostExpensiveProducts"],
rdr["UnitPrice"]);
}*/
}
finally
{
if (conn != null)
{
conn.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Program p= new Program();
p.RunStoredProc();
Console.Read();
}
}
}
Ini menampilkan pengecualian Cannot find the stored procedure dbo.test
. Apakah saya perlu memberikan jalannya? Jika ya, di lokasi mana prosedur tersimpan harus disimpan?
Jawaban:
sumber
conn.Close
, tersirat olehDispose
Open
danClose
menelepon. Jika Anda mengatakan, refactor objek koneksi keluar sebagai bidang di masa depan dan menghapus pernyataan menggunakan, Anda mungkin tidak sengaja lupa untuk menambahkanClose
dan berakhir dengan koneksi terbuka.Parameters
koleksiSqlCommand
objek.Berikut beberapa tautan menarik yang bisa Anda baca:
sumber
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
. Masukkan ke dalamusing
pernyataan akan membantu membersihkan.Prosedur Memanggil Toko di C #
sumber
sumber
sumber
Ini adalah kode untuk menjalankan prosedur tersimpan dengan dan tanpa parameter melalui refleksi. Perhatikan bahwa nama properti objek harus cocok dengan parameter prosedur yang tersimpan.
sumber
Dengan menggunakan Ado.net
sumber
ini adalah contoh dari prosedur tersimpan yang mengembalikan nilai dan eksekusi di c #
sumber
Menggunakan Dapper. jadi saya menambahkan ini saya harap ada yang membantu.
sumber
Silakan periksa Crane (saya penulisnya)
https://www.nuget.org/packages/Crane/
Juga memiliki banyak fitur lain yang mungkin Anda sukai.
sumber
Maksud Anda, kode Anda adalah DDL? Jika demikian, MSSQL tidak memiliki perbedaan. Contoh di atas dengan baik menunjukkan cara menjalankan ini. Pastikan saja
sumber
Tidak ada jawaban Dapper di sini. Jadi saya menambahkan satu
sumber