データベースをVisual Studio 2017に接続します。クエリを実行しようとすると、次のエラーが表示されます。
私が使用している接続文字列は次のとおりです。
SqlConnection con = new SqlConnection("Data Source=ANUPAM-DESKTOP\ANUPAM;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
私のコード:
public void exicuteDatabaseQuery(String query)
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(query, con);
sda.SelectCommand.ExecuteNonQuery();
con.Close();
MessageBox.Show("Successfull");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
int id = Convert.ToInt32(___Id_.Text);
int number = Convert.ToInt32(___Number_.Text);
String InsertQuery = "INSERT INTO Member (id, number)
values('"+id+"','"+number+"')";
exicuteDatabaseQuery(InsertQuery);
}
データベースエクスプローラーの画像:
問題は、SQL Serverログインに「デフォルトデータベース」が正しく設定されていないことだと思います。
これにより、「デフォルトデータベース」の設定が表示されます。
_SELECT sp.name
, sp.default_database_name
FROM sys.server_principals sp
WHERE sp.name = SUSER_SNAME();
_
ログインのデフォルトデータベースを変更するか、接続文字列でデータベースを指定できます。
これにより、デフォルトのデータベースが変更されます。
_ALTER LOGIN <login_name> WITH DEFAULT_DATABASE = [testDB];
_
接続文字列でデータベースを指定する場合は、接続文字列を作成します。
SqlConnection con = new SqlConnection("Data Source=ANUPAM-DESKTOP\\ANUPAM;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Initial Catalog=testDB");