C#を初めて使用しました&私はプログラムでSQL Serverデータベースを開く&を作成しようとしています。SQL Serverデータベースを作成して接続するコード:何が問題なのですか?
私は、&を作成中のASP.NET webappを持っています。データベースからデータを取り出す必要があります(dbが存在しない場合は、&にデフォルトデータが入力されています)。
PS:C#のSystem.Data.SqlClient
は、MySQLまたはSQLiteなどを使用していますか?
正しく接続すると、自分のコードが正しくSQL Serverデータベース&を作成するかどうかはわかりません。
私のコードが正しいかどうか教えてください&どうすれば改善できますか?
UPDATE:エラーは、私がどこに発生するエラー以下のコードで示されている
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"}"
です。 SQL Serverデータベースの作成
:
// When I run this function no file seems to be created in my project directory?
// Although there is a ASPNETDB sql database file in my App_Data folder so this maybe it
public static string DEF_DB_NAME = "mydb.db"; // is this the correct extension?
private bool populateDbDefData()
{
bool res = false;
SqlConnection myConn = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");
string str = "CREATE DATABASE "+DEF_DB_NAME+" ON PRIMARY " +
"(NAME = " + DEF_DB_NAME + "_Data, " +
"FILENAME = " + DEF_DB_NAME + ".mdf', " +
"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
"LOG ON (NAME = " + DEF_DB_NAME + "_Log, " +
"FILENAME = " + DEF_DB_NAME + "Log.ldf', " +
"SIZE = 1MB, " +
"MAXSIZE = 5MB, " +
"FILEGROWTH = 10%)";
SqlCommand myCommand = new SqlCommand(str, myConn);
try
{
myConn.Open(); // ERROR OCCURS HERE
myCommand.ExecuteNonQuery();
insertDefData(myConn);
}
catch (System.Exception ex)
{
res = false;
}
finally
{
if (myConn.State == ConnectionState.Open)
myConn.Close();
res = true;
}
return res;
}
は、ここでSQL Serverデータベースのコードへの私の接続です:私はそれが接続に失敗したかなり確信している - 私は変数でCONNを使用しようとすると、それは接続があると言います開いていません。これは、私はどちらかの接続に失敗したかさえも1位にDBを作成するために失敗したことを意味するかもしれない:
private bool connect()
{
bool res = false;
try
{
conn = new SqlConnection("user id=username;" +
"password=password;" +
"Server=localhost;" +
"Trusted_Connection=yes;" +
"database="+DEF_DB_NAME+"; " +
"connection timeout=30");
conn.Open();
return true;
}
catch (Exception e)
{
}
return false;
}
は、おそらくあなたは、いくつかのエラーメッセージを受け取りましたか? –
あなたは*確実に*ページの読み込みにデータベースを作成すべきではありません。同時に2人の人がページに当たったらどうなるでしょうか? –
@ KirkWollはい、変数connを使用しようとすると、接続が開いていないと表示されます。これは、私が接続に失敗したか、1番目のデータベースを作成することができなかったことを意味する可能性があります。 –