Kullanıcı değişkenlerinin oturum değişkenleri ile eşleşen aşağıdaki kodu kullanıyorum. Saklı Yordam, Oturum Değişkenindeki veriler veritabanındaki verilerle eşleşirse, Satır Sayımını döndürür.Depolanan Prosedürün Yürütülmesi ve satır sayımının çıkışa ve sql parametrelerine geri dönmesi
Her şey, her zaman tek bir satır olacak Satır Sayısını döndürmek dışında çalışır: Özetle, bir form ziyaret edin, bilgi ekleyin ve gönderin. Veri oturumda saklanır ve saklanan prosedür eşleştirildiğinde verileri döndürür. Program intRecCount değişkeni çalışır halde
hep sıfır yerine satır sayısıdır. Yordam Saklı
:
CREATE PROCEDURE [dbo].[uspConfirmation]
@RecordID CHAR(36),
@LName VARCHAR(30),
@FName VARCHAR(30),
@MInit CHAR(1),
@RecordCount INT OUTPUT
AS
SELECT * FROM Registration
WHERE RecordID = @RecordID AND
LName = @LName AND
FName = @FName AND
MInit = @MInit
SET @RecordCount = @@ROWCOUNT
RETURN
Yöntem/Kod:
public static DataSet Confirmation()
{
SqlCommand cmdSQL = new SqlCommand("uspConfirmation", Connection);
cmdSQL.CommandType = CommandType.StoredProcedure;
cmdSQL.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar, 36));
cmdSQL.Parameters["@RecordID"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@RecordID"].Value = RecordIDSession;
cmdSQL.Parameters.Add(new SqlParameter("@LName", SqlDbType.VarChar, 30));
cmdSQL.Parameters["@LName"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@LName"].Value = LNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@FName", SqlDbType.VarChar, 30));
cmdSQL.Parameters["@FName"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@FName"].Value = FNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@MInit", SqlDbType.Char, 1));
cmdSQL.Parameters["@MInit"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@MInit"].Value = MNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@RecordCount", SqlDbType.Int));
cmdSQL.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
... sonra değişken satır bir çıkış değişkeni üzerinden saymak tutmak için ..
Int32 intRecCount = Convert.ToInt32(cmdSQL.Parameters["@RecordCount"].Value);
SqlDataAdapter da = new SqlDataAdapter(cmdSQL);
DataSet ds = new DataSet();
da.Fill(ds);
try {
Connection.Open();
cmdSQL.ExecuteNonQuery();
}
catch (Exception ex) {
dbMsg = ex.Message;
}
finally {
Connection.Close();
cmdSQL.Dispose();
cmdSQL.Parameters.Clear();
}
return ds;
}
+1 İyi, iyi ayrıntı dolu, soru düşünülmüş . Güzel. – Jonathan
Teşekkürler! Ben C# için çok yeni ama bu kadar çok seviyorum ve hiçbir şey sizin gibi insanlardan daha cesaret verici değildir. Tekrar teşekkürler! – Asynchronous