1

意味がわかりません どなたか助けてください

「初期化文字列の形式が、インデックス 50 から始まる仕様に準拠していません。」

コード:

InitializeComponent();
connString = "Data   Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\andrew\\Documents\\Vinyl0.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
query = "SELECT * FROM Record";
dAdapter = new SqlDataAdapter(query, connString); //This is where the error appears.
dTable = new DataTable();
cBuilder = new SqlCommandBuilder(dAdapter);
cBuilder.QuotePrefix = "[";
cBuilder.QuoteSuffix = "]";
myDataView = dTable.DefaultView;
dAdapter.Fill(dTable);
BindingSource bndSource = new BindingSource();
bndSource.DataSource = dTable;
4

4 に答える 4

9

に気づいていC:\\Users\andrew\\ます。

これは、接続文字列の形式を\\台無し\aにする文字のエスケープ シーケンスです。

于 2013-05-02T15:51:59.523 に答える
6

これが問題だと思います:

C:\\Users\andrew

\a「アラート」文字 (U+0007) のエスケープ シーケンスです...バックスラッシュの後に「a」が必要だったのではないかと思います。コンパイル時エラーが発生しなかったのは不運でした。これは、コンパイル時エラー\jまたはその他の無効なエスケープ シーケンスがあった場合に発生するエラーです。

すべてのバックスラッシュを二重にする必要がないように、代わりに逐語的な文字列リテラルを使用することをお勧めします。

connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\andrew\Documents\Vinyl0.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
于 2013-05-02T15:52:25.637 に答える
3

a「andrew」の前にバックスラッシュがありません。次のようになります。

connString = "Data   Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\andrew\\Documents\\Vinyl0.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
于 2013-05-02T15:51:48.253 に答える
2

C:\\Users\ あなたの問題です、あなたはそれをに変更する必要がありますC:\\Users\\

于 2013-05-02T15:53:03.590 に答える