Forum

MsSql de ARITHABORT...
 
Bildirimler
Hepsini Temizle

MsSql de ARITHABORT sorunu.

5 Yazılar
2 Üyeler
0 Reactions
2,392 Görüntüleme
(@UgurNalbantoglu)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

Değerli bilişim üstadları merhaba.

C# ta hazırladığım projemde Sql e dataadapter ile bağlanıp muhasebe programımdaki stokların sayılarını almaya çalışıyorum. Fakat hazırladığım query sql de çalışmasına rağmen projemde aşağıdaki metni hata olarak döndürüyor. msdn forumlarında bazı anlatımlar var. önerilen çözümleri denememe rağmen sorunu gideremedim. Değerli çözüm önerilerinizi paylaşabilir misiniz? İyi çalışmalar dilerim. 

 

HATA MESAJI :

SELECT failed because the following SET options have incorrect settings: 'ARITHABORT'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.

 

 
Gönderildi : 28/01/2016 17:09

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Hata mesajına ek olarak kodunu ve veritabanının özelliklerini de paylaşabilir misin?

Ayrıca şu konfigürasyon seçenekleri kodun içinde bulunuyor mu?

SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT ON
SET QUOTED_IDENTIFIER ON

 
Gönderildi : 28/01/2016 17:39

(@UgurNalbantoglu)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

Kodlarım aşağıdaki gibidir. Veritabanı kendi tasarımım olmadığı için özelliklerini paylaşamıyorum. 

 

DataTable dtStokMiktarlari = new DataTable();
#region MİKTARLAR GÜNCELLENDİ.
using (SqlConnection baglanti = new SqlConnection(ConfigurationManager.ConnectionStrings["DB2016ConStr"].ToString()))
{
baglanti.Open();
using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT [STOCKREF],[ONHAND] AS StokMiktar FROM LV_004_01_STINVTOT WHERE INVENNO = '0' ORDER BY STOCKREF", baglanti))
{
da.Fill(dtStokMiktarlari);
}
}
using (SqlConnection baglanti = new SqlConnection(ConfigurationManager.ConnectionStrings["SGBayiPortaliConStr"].ToString()))
{
baglanti.Open();
using (SqlCommand cmd = new SqlCommand("UPDATE Stok SET StokMiktar = @StokMiktar WHERE StokLogicalref = @StokLogicalref", baglanti))
{
for (int i = 0; i < dtStokMiktarlari.Rows.Count; i++)
{
cmd.Parameters.Add("@StokMiktar", SqlDbType.NVarChar).Value = dtStokMiktarlari.Rows[i]["ONHAND"].ToString();
cmd.Parameters.Add("@StokLogicalref", SqlDbType.Int).Value = dtStokMiktarlari.Rows[i]["STOCKREF"].ToString();
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
}
}
using (SqlConnection baglanti = new SqlConnection(ConfigurationManager.ConnectionStrings["SGBayiPortaliConStr"].ToString()))
{
baglanti.Open();
using (SqlCommand cmd = new SqlCommand("UPDATE Stok SET StokMiktar = '0' WHERE StokMiktar IS NULL", baglanti))
{
cmd.ExecuteNonQuery();
}
}
#endregion

 
Gönderildi : 28/01/2016 18:09

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Önceki mesajımda bahsettiğim ayarları aşağıdaki komutları kullanarak uygulayın; yani sorgulamalarınızı, aşağıdakileri yaptıktan sonra gerçekleştirin.

SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT ON
SET QUOTED_IDENTIFIER ON

Örnek:

SqlCommand command = new SqlCommand("SET ANSI_NULLS ON", connection);
command.Connection.Open();
command.ExecuteNonQuery();

 

 
Gönderildi : 28/01/2016 19:16

(@UgurNalbantoglu)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

Desteğiniz için teşekkür ederim. Sorun giderildi. 

 
Gönderildi : 29/01/2016 20:04

Paylaş: