[英]An object reference is required for the non-static field, method, or property 'System.Data.Common.DbCommand.ExecuteScalar()'
我正在使用Windows窗體應用程序中的本地數據庫。 它的工作原理就像魅力一樣,但是我想檢查用戶搜索的記錄是否在數據庫中。 我編寫了以下代碼,但出現錯誤,我不知道如何解決。 我知道我將非靜態對象引用到靜態方法。 但是不知道如何解決。 預先感謝 !
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length != 0)
{
var connString = @"Data Source=C:\Users\Andrei\Documents\Visual Studio 2010\Projects\Stellwag\Stellwag\Angajati.sdf";
using (var conn = new SqlCeConnection(connString))
{
try
{
var numePrenume = textBox1.Text.Trim().Split(' ');
var nume = numePrenume[0];
var prenume = numePrenume[1];
conn.Open();
var query = "SELECT COUNT(*) FROM info WHERE Nume='" + nume + "' AND Prenume='" + prenume + "'";
var command = new SqlCeCommand(query, conn);
var dataAdapter = new SqlCeDataAdapter(command);
var dataTable = new DataTable();
dataAdapter.Fill(dataTable);
int userCount = (int) SqlCeCommand.ExecuteScalar();
if (userCount > 0)
{
Info form = new Info(nume, prenume);
form.Show();
}
else
{
MessageBox.Show("Nu exista un angajat cu acest nume");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
替換int userCount = (int) SqlCeCommand.ExecuteScalar();
同
int userCount = (int) command.ExecuteScalar();
因為SqlCeCommand
是一個類,而ExecuteScalar()
是該類的非靜態方法。 因此,如果沒有引用,您將無法訪問ExecuteScalar()
。 在此語句中var command = new SqlCeCommand(query, conn);
您正在創建對該類的引用,因此可以通過該引用調用ExecuteScalar()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.