şu linke bi bakarmısın. ama c# ile yazılmış bu. tabi birşey fark etmez. ne de olsa tabloları oluşturan sorgular...
Dostum sağol, bu sorunu halletmiştim zaten buraya yazmayı unutmuşum
Ama şimdi ufak bir sorunum daha var. Create Database ve Create Table komutları aynı sorguda calismiyor nedense, İlla önce VT yi kurup, ardından da tabloyu kurmam gerekiyor. Bak şöle düşün program ilk acıldıgında, VT yoksa, VT yi ve Tabloları kuruyor, VT varsa bişi yapmıyor sadece baglanıyor. Ama VT olmadıgı zaman VT yi kurmasına ragmen tabloları eklemiyor. Nedenini anlayamadım.
Kodlarım bunlar;
Dim constr As String = "Server=.; Integrated Security=SSPI" Dim constr2 As String = "Server=.; Database=aydin; Integrated Security=SSPI"
Dim conn As SqlConnection = New SqlConnection(constr) Dim conn2 As SqlConnection = New SqlConnection(constr2)
Dim dap As SqlDataAdapter = New SqlDataAdapter Dim cmd As SqlCommand = New SqlCommand Dim ds As DataSet = New DataSet
Dim komut As String
Try conn.Open()
cmd.Connection = conn Dim sql_vtkontrol As String = "SELECT * FROM sysdatabases WHERE name= 'aydin' " cmd.CommandText = sql_vtkontrol cmd.ExecuteNonQuery() dap.SelectCommand = cmd dap.Fill(ds, "sysdatabases")
If ds.Tables("sysdatabases").Rows.Count = 0 Then MsgBox("Veritabanı YOK")
komut = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbl_resimler]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)" & _ "DROP TABLE [dbo].[tbl_resimler]" komut &= "CREATE TABLE [dbo].[tbl_resimler] ([numara] [decimal](18, 0) IDENTITY (1, 1) NOT NULL ,[emlakresimno] [decimal](18, 0) NOT NULL ,[resimadresi] [varchar] (7001) COLLATE Turkish_CI_AS NULL)"
cmd.CommandText = komut cmd.ExecuteNonQuery()
conn2.Close() End If
Catch ex As Exception MsgBox(ex.Message)
Finally conn.Close() End Try
dikkatimi çeken bir şey oldu...
create database aydin, yazdıktan sonra create table [dbo].[tbl_resimler] yazmışsın. sen bir veritabanı oluşturduğun anda sql server seni o veritabanına otomatik olarak giriş yaptırıyor mu? yoksa sen
create table aydin.tbl_resimler
yada
create database aydin GO USE aydin create table....
mi yazmak durumundasın?
Valla kodlar yukardaki gibi yamyam_şerif. demek istediğin şeyi yapıyormu bende bilmiyorum ama sanırım kendisi otomatik olarak yapmıyor. Cünkü constr1 'de database adı verilmiyor.
Ben create database den sonra cmd ye conn2 yi bagladım bu seferde;
"Cannot open database requested in login 'aydin'.Login fails." gibi bir hata verdi.
Arkadaşlar bu işte bukadar, ihtiyacı olan olur belki diye kodlar bunlar, mutlaka işinize yarıcaktır böyle bir uygulama yazdıgınız zaman
Dim constr_vtyok As String = "Server=.; Integrated Security=SSPI" Dim conn_vtyok As SqlConnection = New SqlConnection(constr_vtyok)
Dim constr_vtvar As String = "Server=.; Database=aydin; Integrated Security=SSPI" Dim conn_vtvar As SqlConnection = New SqlConnection(constr_vtvar)
Dim cmd_vt As SqlCommand = New SqlCommand 'database kontrolu Dim dap_vt As SqlDataAdapter = New SqlDataAdapter 'database kontrolu
Dim cmd_tablo As SqlCommand = New SqlCommand 'tablo kontrolu Dim dap_tablo As SqlDataAdapter = New SqlDataAdapter 'tablo kontrolu
Dim ds As DataSet = New DataSet
Dim komut_vtolustur As String 'database olustur Dim komut_tabloolustur As String 'tablo olustur databaseden sonra
Private Sub btnolustur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnolustur.Click Try conn_vtyok.Open()
cmd_vt.Connection = conn_vtyok Dim sql_vtkontrol As String = "SELECT name FROM sysdatabases WHERE name='aydin'" cmd_vt.CommandText = sql_vtkontrol cmd_vt.ExecuteNonQuery() dap_vt.SelectCommand = cmd_vt dap_vt.Fill(ds, "sysdatabases")
If ds.Tables("sysdatabases").Rows.Count = 0 Then MsgBox("VERİTABANI YOK")
cmd_tablo.Connection = conn_vtvar Dim sql_tablokontrol As String = "SELECT name FROM sysobjects WHERE name='tbl_adlar'" cmd_tablo.CommandText = sql_tablokontrol cmd_tablo.ExecuteNonQuery() dap_tablo.SelectCommand = cmd_tablo dap_tablo.Fill(ds, "sysobjects")
If ds.Tables("sysobjects").Rows.Count = 0 Then MsgBox("TABLO YOK")