Ne arayalım?

ARAMIZA KATILIN

BİZE ULAŞIN

Adres:

E-posta:

host/bin/bilisimlife.dll

iletisim@bilisimlife.net




 
ceylan
Yazmamış
       
 1  
 3

stored procedure

Merhaba
C# la yazdığım programda veritabanına ekleme yapabilmek için stored procedure oluşturmaya çalışıyorum. Amacım bir procedure içinde bütün ekleme olayını tamamlamak ve C#'tan çağırmak. Aşağıdaki şekilde yazdığımda çalıştıramıyorum.Başka yöntemleri denediğimde de her seferinde yalnızca ilk sütuna ekleme yapılabiliyor. Else'ten sonrasını görmüyor. Bunu nasıl çözebilirim?

use env
go
create proc [SP$insert](
@p1 nvarchar(100),
@p2 nvarchar(100),
@id int output,
@debug bit = 0
)
as
begin
set nocount on

begin try

if @p2='Kullanıcı Adı'
begin
INSERT INTO env.dbo.Base(u_name) VALUES (@p1)
SELECT @id = @@IDENTITY 
end

else if @p2='Serial Number'
begin
INSERT INTO env.dbo.Base(ser_num) VALUES (@p1)
SELECT @id= @@IDENTITY
end 

end try

begin catch
if @debug = 1
throw;
end catch

set nocount off
end
go

C#:

  try
                {
                    cmd.CommandText = "SP$insert";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@p1", textBox1.Text));
                    cmd.Parameters.Add(new SqlParameter("@p2", f1.textBox1.Text));
                    cmd.Parameters.Add(new SqlParameter("@sira_no", SqlDbType.Int)).Direction = ParameterDirection.Output;
                    cmd.Connection = baglan;
                    baglan.Open();
                    cmd.ExecuteNonQuery();
                    baglan.Close();
                    MessageBox.Show("Inserted!");
                }
                catch (Exception)
                {
                    MessageBox.Show("Not Inserted!");
                    throw;
                }
                finally

Imza yok!


 
Rserit
Developer
       
 1026  
 278

Merhaba. Else'den sonra nasıl bir hata veriyor?

Developer.

 
Caner
Yazılım Geliştiricisi
       
 1  
 7

sorguda @sira_no diye bir parametre göremiyorum. Ama command ın içine output olarak verilmiş. sanırsam @id olması gerekiyor. Yanılıyor muyum?

Elendil Blacksmith.

 
ceylan
Yazmamış
       
 1  
 3

 Rserit şunu dedi:
 Merhaba. Else'den sonra nasıl bir hata veriyor?
Şu anki haliyle eklendi mesajı vermesine rağmen veritabanında bir değişiklik olmuyor. Bunun yerine her insert işlemi için bir SP oluşturup, C# kodunda if else yardımıyla herbirini ayrı ayrı çağırdığımda da neyi seçersem seçeyim her seferinde yalnızca ilk sütuna ekleme yapıyor ama hata vermiyor.

Imza yok!

 
ceylan
Yazmamış
       
 1  
 3

 Caner şunu dedi:
 sorguda @sira_no diye bir parametre göremiyorum. Ama command ın içine output olarak verilmiş. sanırsam @id olması gerekiyor. Yanılıyor muyum?

sira_no'yu normalde id olarak değiştirmiştim.Kopyalamada düzeltmeyi unutmuşum.O konuda bir sıkıntı yok.

Imza yok!

 
Caner
Yazılım Geliştiricisi
       
 1  
 7

zaten bir sütuna insert yapılıyor. ya u_name ya da ser_num. Ama sorununuz sernum ve uname i aynı anda aynı satıra yazmak istiyorsanız. o farklı. Şu an yazdığınız koddan bu anlaşılıyor

Elendil Blacksmith.

 
ceylan
Yazmamış
       
 1  
 3

 Caner şunu dedi:
 zaten bir sütuna insert yapılıyor. ya u_name ya da ser_num. Ama sorununuz sernum ve uname i aynı anda aynı satıra yazmak istiyorsanız. o farklı. Şu an yazdığınız koddan bu anlaşılıyor

Listbox'tan seçtiğim herhangi bir sütuna ekleme yapmak istiyorum.25 tane sütunum var ve bütün ekleme işlemleri için yalnız bir SP kullanmak istiyorum. Bu yüzden if else kullanmak zorundayım ama bu şekilde hiçbir veri eklenmiyor. Herbir sütun için ayrı ayrı SP yazıp, C# tan if else kullanarak çağırdığımda yine çalışmıyor. Velhasıl yalnızca tek sütun üzerinde işlem yaptığımda başarılı oluyorum.

Imza yok!

 
Caner
Yazılım Geliştiricisi
       
 1  
 7

 ceylan şunu dedi:
 
 Caner şunu dedi:
 zaten bir sütuna insert yapılıyor. ya u_name ya da ser_num. Ama sorununuz sernum ve uname i aynı anda aynı satıra yazmak istiyorsanız. o farklı. Şu an yazdığınız koddan bu anlaşılıyor

Listbox'tan seçtiğim herhangi bir sütuna ekleme yapmak istiyorum.25 tane sütunum var ve bütün ekleme işlemleri için yalnız bir SP kullanmak istiyorum. Bu yüzden if else kullanmak zorundayım ama bu şekilde hiçbir veri eklenmiyor. Herbir sütun için ayrı ayrı SP yazıp, C# tan if else kullanarak çağırdığımda yine çalışmıyor. Velhasıl yalnızca tek sütun üzerinde işlem yaptığımda başarılı oluyorum.


1-) switch case yapısını denediniz mi? 2-) eğer form üzerinde tuttuğunuz bir tablonuz varsa ve o tabloda işlem yapmak istiyorsanız. DataGridView öneririm. Böylelikle her seferinde insert yapmanıza gerek kalmaz. 3-) bu karar ver işini C# da yapmanızı öneririm. Hata takibi daha kolay olur. Visual Studio kullanıyorsanız break point ile gelen - giden değerleri kontrol ederek daha hızlı ilerlersiniz.

Elendil Blacksmith.