我對我所然而寫了這個代碼 的存款/取款交易銀行項目的工作,我得到錯誤,錯誤而來自OleDb的數據庫中檢索數據
錯誤1「串」不包含關於「getDouble」和無 擴展方法「getDouble」接受 類型的第一個參數的定義「字符串」可以發現
錯誤2的名稱「結果」不存在於當前上下文存在
我對我所然而寫了這個代碼 的存款/取款交易銀行項目的工作,我得到錯誤,錯誤而來自OleDb的數據庫中檢索數據
錯誤1「串」不包含關於「getDouble」和無 擴展方法「getDouble」接受 類型的第一個參數的定義「字符串」可以發現
錯誤2的名稱「結果」不存在於當前上下文存在
除了什麼Akshita2gud提出了從查詢您的數據天平時,從讀者的雙重價值您的更新命令形成不良,即使內部,你能向SQ開放通過將字符串添加到一起來進行L-注射?當然...
我發現的OleDB命令使用「?」作爲來自您的活動的參數值的放置位置。你有參數字符串,但基於從屏幕上手動輸入的內容構建字符串。你應該把它作爲:
string update = "Update Accounts Set Balance = ? Where acctNO = ?";
而在同一序號位置的SQL-更新上面的餘額字段添加的參數添加的第一個,賬號加入第二。如果餘額是數字,則不需要字符串,因爲參數是數字。與帳號類似。如果字符串,並且參數是字符串,它知道如何處理它。我喜歡在參數名稱的前面加上前綴,這樣就不會認爲它知道列名與你打算進入的內容......因爲在OleDB查詢中沒有命名參數。我已經添加了「p」,分別表示balance和acctno的「參數」。
df.Parameters.AddWithValue("@pBalance", balance); // balance is already numeric
df.Parameters.AddWithValue("@pAcctNo", AcctDep.Text); // account # is string
df.ExecuteNonQuery();
dc.Close();
應用類似SQL的更新您的存款和撤回聲明,並根據需要,如由Akshita2gud提出解決您的數字轉換。
似乎你正試圖從表中獲得平衡的價值。做到這一點的方法是
balance = Convert.ToInt32(df.ExecuteScalar());
GetDouble方法可與OledbDataReader(DbDataReader)和不過我建議你給予適當的命名conventions.Names像「東風」作爲
OleDbDataReader dr = df.ExecuteReader();
while (dr.Read())
{
double val = dr.GetDouble(0);//ordinal of column
}
導致程序員無處不在調試代碼,因爲它變得複雜
我認爲錯誤信息是清楚的。 'result'是字符串,除非你寫了一個擴展方法,否則它沒有'getDouble'方法。 –
如果您試圖將字符串轉換爲double值,請嘗試使用Convert.ToDouble()方法。你也嘗試在結果有任何值之前使用結果:'字符串結果;'這也應該引發異常。你可以使用:'string result = null;'來初始化它。 – CalebB
注意:撤消是一個詞,不需要大寫'd' –