asp.net ile access veritabanından combobox'a bağlı veri göstermek

Katılım
28 Aralık 2005
Mesajlar
92
Merhaba arkadaşlar,
Konuyu web bölümüne açtım ama orası epey sakin. Konu hakkında bir fikri olan, örnek bir kodu olan varsa ve paylaşırsa çok sevinirim. Tüm interneti gezdim ve istediğimim bulamadım.
Çok teşekkürler...
-------------------------------------------
-------------------------------------------
http://www.excel.web.tr/showthread.php?t=83055
(Link içeriği)
Merhaba arkadaşlar.
asp.net sayfamda bir tane comboboxum var. Access veritabanında "Adı Soyadı" alanından verilere bağlı. Sayfada birde datalistvar. Ben comboboxtan bir kayıt seçtiğimde datalistte o kaydın bilgileri gözüksün istiyorum. Buna benzer bir örnek varmıdır internette yada elinizin altında...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın turan1971,

Uygulamanız c# mı yoksa vb.net mi?
 
Katılım
28 Aralık 2005
Mesajlar
92
Sayın turan1971,

Uygulamanız c# mı yoksa vb.net mi?
kusura bakmayın uzun zaman cevap gelmeyince birdaha dönemedim.
uygulamam vb.net
ama hallettim çok şükür... :)

Şimdi ise *.mdb değilde, 2007 sürüm access dosyasına nasıl bağlanırım onu düşünüyorum...
bizim dosya 2007 formatında yani *.accdb.
aşağıda 2003 formatına bağlanan kodları 2007 accese bağlanması için nasıl değiştirmeliyim...

bu kod personel.aspx sayfasında

<asp:AccessDataSource runat="server" id="AccessDataSource1" DataFile="database/veritabanı.mdb" SelectCommand="SELECT [Kayıt Sıra No] AS Kayıt_Sıra_No, [Adı Soyadı] AS Adı_Soyadı FROM [tablo personel] ORDER BY [Adı Soyadı]">

buda personel.aspx.vb dosyasında
Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/veritabanı.mdb")
Dim myAccessConnection As New OleDbConnection(connStr)
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın turan1971,

Bağlantı cümlesi (connection string) şöyle olmalı:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

Eğer dosyanız uygun yerde ise:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Persist Security Info=False;

İyi çalışmalar
 
Katılım
28 Aralık 2005
Mesajlar
92
Çok teşekkür ederim Sayım Modalı. Sayenizde bağlantı tamam.
...
Accesste yine sayenizde başardığımı şimdi sharepointdesigner ile .aspx sayfasında başarmaya çalışıyorum. Üç adet dropdownlist'im var. Sayfa çalıştığında ilk dropdownliste ülke isimleri doluyor. Burdan bir ülke seçtiğimde, ikinci dropdownlist access veritabanına bağlanıp ülkeye ait şehirleri getiriyor. ikinciden bu sefer şehirleri seçtiğimde, veritabanından şehirlerdeki personeli üçüncü dropdownliste aktarıyor. üçüncü dropdownlistten personel seçtiğimdede, o personele ait bilgiler veritabanından çekilip gridviewde gösteriliyor.
,,,,
gösteriliyor, geliyor, dolduruluyor dediğime bakmayın. Hiçbiri olmuyor. :(
Buna benzer bir örnek arıyorum internette ama, yok ajax, yok javascript, yok visualbasic 2008 programlarında örnekler var ama, oradan kendi sistemime türetemiyorum maalesef. Ben sharepoint 2007 kullanıyorum. .aspx sayfası vb dilinde... Eğer bu şekilde hazır kod olan bir örneğe rastlayıp paylaşırsanız çok mutlu olurum.
İyi çalışmalar...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın turan1971,

Select parametresini denediniz mi? Bilmiyorum.

web.config de bağlantı cümlesi ekleyip eklemediğinizi bilmiyorum.

web.config dosyanızı açıp içine şunları ekleyin.

Kod:
<connectionStrings>
  <add name="baglanti1" connectionString="Microsoft.ACE.OLEDB.12.0;Data Source="|DataDirectory|\myAccess2007file.accdb";Persist Security Info=False"
   providerName="System.Data.OleDb" />
 </connectionStrings>
Böylece her noktada bağlantınızı oluşturmaya gerek yok.

Ondan sonra sayfanıza bir sqlDataSurce ekleyin:

Kod:
<asp:SqlDataSource 
            ID="SqlDataSource2" 
            runat="server" 
            SelectCommand = "SELECT DISTINCT ULKE FROM TABLOADINIZ" 
            ConnectionString ="<%$ ConnectionStrings:baglanti1 %>" 
            ProviderName ="<%$ ConnectionStrings:baglanti1.ProviderName %>" >
        </asp:SqlDataSource> 
Sonra da bir dropdownlist ekleyiniz:

Kod:
<asp:DropDownList 
            ID="DropDownList1" 
            runat="server" 
            DataSourceID="SqlDataSource2" 
            AutoPostBack ="true" 
            DataTextField ="ULKE">
        </asp:DropDownList>
Bir sqlDataSource daha ekleyin:

Kod:
<asp:SqlDataSource 
            ID="SqlDataSource3" 
            runat="server" 
            SelectCommand = "SELECT DISTINCT SEHIR, ULKE FROM TABLOADINIZ WHERE ULKE=@ulke_filtresi" 
            ConnectionString ="<%$ ConnectionStrings:baglanti1 %>"  
            ProviderName ="<%$  ConnectionStrings:baglanti1.ProviderName %>" >
        
<SelectParameters>
                <asp:ControlParameter
                     Name ="ulke_filtresi" 
                     ControlID ="DropDownList1" 
                     PropertyName ="SelectedValue" >
                </asp:ControlParameter>
</SelectParameters>
</asp:SqlDataSource> 
Bir adet dropdownlist daha ekleyin.

Kod:
<asp:DropDownList 
            ID="DropDownList2" 
            runat="server" 
            DataSourceID="SqlDataSource3" 
            AutoPostBack ="true" 
            DataTextField ="SEHIR">
        </asp:DropDownList>
Şimdi bu kodları sayfanızda deneyin. İkinci dropdownliste ilk açılan kutudan seçtiğimiz ülkenin şehirleri gelmesi gerekir.

Şimdi üçüncü bir sqlDatasource ekleyin.

Kod:
<asp:SqlDataSource 
            ID="SqlDataSource1" 
            runat="server" 
            SelectCommand ="SELECT ULKE, SEHIR, PERSONEL FROM TABLOADINIZ WHERE ULKE=@ulke_filtresi AND SEHIR=@sehir_filtresi" 
            ConnectionString ="<%$ ConnectionStrings:baglanti1 %>" 
            ProviderName ="<%$ ConnectionStrings:baglanti1.ProviderName %>" >
            <SelectParameters>
                <asp:ControlParameter
                     Name ="ulke_filtresi" 
                     ControlID ="DropDownList1" 
                     PropertyName ="SelectedValue" >
                </asp:ControlParameter>
                
                <asp:ControlParameter
                     Name ="sehir_filtresi" 
                     ControlID ="DropDownList2" 
                     PropertyName ="SelectedValue" >
                </asp:ControlParameter>
            
            </SelectParameters>
         </asp:SqlDataSource>
Şimdi bir gridview ekleyin.

Kod:
<asp:GridView 
            ID="GridView1" 
            runat="server" 
            DataSourceID="SqlDataSource1" 
            AutoGenerateColumns ="false"
            Width ="614px" Height ="133px">
            
            <Columns >
                <asp:BoundField HeaderText ="ÜLKE" DataField ="ULKE" SortExpression ="ÜLKE" />
                <asp:BoundField HeaderText ="ŞEHİR" DataField ="SEHIR" SortExpression ="ŞEHİR" />
                <asp:BoundField HeaderText ="PERSONEL" DataField ="PERSONEL" SortExpression ="PERSONEL" />
            </Columns>
        </asp:GridView>
Bu işin mantığı böyle artık siz devam edersiniz. umarım hata oluşmaz.

İyi çalışmalar
 
Katılım
28 Aralık 2005
Mesajlar
92
böylebir hata alıyorum... ama denemeye devam :)

[ArgumentException: ConnectionString içinde OLE DB Sağlayıcısı belirtilmedi. Örnek: 'Provider=SQLOLEDB;'.]
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
web configdeki connection stringi:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Pers ist Security Info=False;
olarak değiştirin veya bağlantı tamam dediğiniz ifadeyi yazın
 
Katılım
28 Aralık 2005
Mesajlar
92
Merhaba, projeye tekrar başladım...
Sayın Modalı bağlantı önceki yardımlarınızla harddiskteki yola göre yapabilmiştim. Fakat aspx sayfalarını server'e attığımda bağlantıyı nasıl yazacağımı bilemedim...

Mesela veritabanım "http://10.10.100.100/satislar/yurtici/ankara/database" intranet klasöründe yer alacak. Buna göre web.config içinde bağlantı sizce nasıl olmalı?

<connectionStrings>
<add name="izahaccess"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=database/izah.accdb;Persist Security Info=False"
providerName="System.Data.OleDb" />
</connectionStrings>
 
Katılım
28 Aralık 2005
Mesajlar
92
aa yaptım...:)
intranetteki database klasörünü App_Data olarak değiştirdim ve aşağıdaki gibi web.config yazınca oldu...

Şimdi bir diğer sorun var. .aspx sayfasında
ConnectionString="<%$ ConnectionStrings:pvtaccess%>"
ProviderName ="<%$ ConnectionStrings:pvtaccess.ProviderName %>">
yazınca database'e bağlanabiliyorum. Fakat *.aspx.vb sayfasında aynı veritabanına bağlanmak için ne yapmam lazım...


<connectionStrings>
<add name="izahaccess"
connectionString="Provider=Microsoft.ACE.OLEDB.12. 0;Data Source=|DataDirectory|/izah.accdb;Persist Security Info=False"
providerName="System.Data.OleDb" />
</connectionStrings>
 
Üst