このコードは完全に正常に機能していましたが、今日実行しようとしましたが、次の例外に直面しています:
私はこのSQLエラーがあります:
例外の詳細: System.Data.SqlClient.SqlException: データ型 text と nvarchar は equal to 演算子で互換性がありません。
私のコードは次のとおりです。
protected Boolean is_valid(string a, string b) {
SqlConnection connection = getConnection();
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandText = ("SELECT [Email_id] FROM [logintable] WHERE [Email_id] = @a AND [Password]=@b ");
cmd.Parameters.Add("a", SqlDbType.NVarChar).Value = a;
cmd.Parameters.Add("b", SqlDbType.NVarChar).Value = b;
object obj = cmd.ExecuteScalar();
connection.Close();
...
}`
私のDBフィールドのタイプはnvarchar(50)
.
logintable
単なる単純なテーブルです。VSでSQL Expressを使用しています。データ型が nvarchar(50) の 3 つの列があります。ヌルを許可しません。
nvarchar(50)
db のデータ型を に変更して、このエラーを解決しようとしましたnvarchar(MAX)
。しかし、違いはありませんでした。
また、次のようにクエリを記述しようとしました。
cmd.CommandText = ("SELECT [Email_id] FROM [logintable] WHERE Email_id like @a AND Password like @b ");
しかし、それは解決したり、違いを生んだりしませんでした.助けてください? 前もって感謝します。