• 29-10-2012, 15:32:25
    #1
    iyi günler arkadaşlar bir sorunlar karşı karşıyayım yardımcı olursanız çok sevinirim.sorunum şu procedur ile dışardan mssql'e bir değer alıyorum programdan misal elma,armut,şeftali,kiraz, bu gelen değeri çarpalayıp hepsini tabloya nasıl insert edebilirm.
  • 29-10-2012, 15:42:45
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    İster sql tarafında ister kod tarafında split edebilirsin.
    Örnek:
    Bu kod sana parçalı şekilde verecektir. For loop'a alırsan istediğin gibi değerleri alırsın.
    string[] value = textbox.text.split(',');
    for(int i=0; i<value.Lenght; i++)
        string val = value[i];
  • 29-10-2012, 16:32:34
    #3
    Dedigini basta bende dusundum ama bunu yaparsam iki tane procedur kullanmis olucam bunu onune gecmek icin veritabninda parcalamam gerekiyor gelen veriyi. Telefondan girdigim icin kodlara ulasamiyorum eve gidince yollarim buraya
  • 29-10-2012, 17:51:27
    #4
    O zaman procedure içinde ayır.
    DECLARE @isim        VARCHAR(100)
    SET @isim = 'caner karadag'
     
    SELECT SUBSTRING(@isim, 1, CHARINDEX(' ', @isim) - 1) AS [ad],
           SUBSTRING(@isim, CHARINDEX(' ', @isim) + 1, LEN(@isim) AS [soyad]
  • 29-10-2012, 18:30:34
    #5
    peki şöyle bir veri gelse veritabanına DECLARE @isim VARCHAR(100) SET @isim = 'elma,artmut,çilek,karpuz,üzüm' bunları parçalayıp hepsi tabloya nasıl eklebiliriz.kod kısmında olsa devamlı insert işlemi yapıcak o yüzden veritabanında bitirmek isitiyorum bu işi
  • 29-10-2012, 21:41:53
    #6
    Birden fazla gelen için ekstra fazla kod yazman gerek.
    Şu örnek işine yarar.
    declare @index int, @chars varchar(max), @string nvarchar(max) = 'a,b,c,d,e', @delimiter nvarchar(1) = ',' 
        
    select @index = 1     
    	if len(@string)<1 or @string is null  return     
    
    while @index!= 0     
    begin     
    	set @index = charindex(@delimiter,@string)     
    	if @index!=0     
    		set @chars = left(@string,@index - 1)     
    	else     
    		set @chars = @string     
    
    	set @string = right(@string,len(@string) - @index)     
    	if len(@string) = 0 break
    	print(@chars)
    end
    Bu sana direk şu şekilde sonuç verir.
    a
    b
    c
    d
    e
  • 29-10-2012, 22:39:33
    #7
    çok teşekkür ederim yardımcı olduğun için bu işe yaradı şimdi