Şöyle basit bir .sql dosyasına sahip değildir:hataları alır, ama SSMS koşarak
SSMS onu çalıştırmakUSE [master]
GO
CREATE DATABASE [NEW_DATABASE]
GO
, iyi çalışıyor, NEW_DATABASE veritabanı oluşturuldu. Ancak, bu komutu C# programında gömülü bir kaynak olarak kullanarak çalıştırmaya çalışıyorum. Bu .sql dosyasının son sürümü çok daha karmaşık olacak, ancak şimdilik sadece bu basit betiği çalışmaya çalışıyorum. Ben şu var,
1) I added a resource file (named SqlFiles) to my project.
2) I opened the resource file within VS and added a new file
resource, "create.sql".
3) I saved the resource file.
Sonra benim kodunda: Ben programı çalıştırdığınızda
// If database doesn't exist, run the script to create it.
if (dbExists == false)
{
using (var connection = new SqlConnection("Data Source=" + computerName + "\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = SqlFiles.create;
command.ExecuteNonQuery();
}
}
, aşağıdaki hatayı alıyorum İşte
ben uyguladığınız adımları şunlardır komut çalıştırıldığında: Ben belirtildiği gibi SSMS bu aynı dosyayı açmak ve çalıştırmak eğerIncorrect syntax near 'GO'.
Ancak, bu kel sorun olmadan ks.
ben hata ayıklamacommand
değişkenin üzerine geldiğinizde, CommandText değeri içinde biçimlendirme metni göründüğünü fark yok
(daha doğrusu, karakterler dönüş):
USE [master]\r\nGO\r\nCREATE DATABASE [NEW_DATABASE]\r\nGO\r\n
bu sorunu olabilir mi?
SSMS aracılığıyla çalıştırdığınızda, Windows Kimlik Doğrulaması veya belirli bir SQL kullanıcı hesabı kullanıyor musunuz? – Lex
@Lex Windows Kimlik Doğrulaması. – Kevin
Sanırım orada yeni satır karakterleri hakkında haklısınız. Eğer bunları command.CommandText = SqlFiles.create.Replace ("\\ r \\ n", ""); 'gibi bir şey kullanarak çıkarırsanız çalışır mı? Belki de tek de \\ 'ile denemek? Açıkçası görünen bir şey önerirsem özür dilerim. – Lex