0
我有這樣的代碼:SqlDataReader的數值數據類型
public void nactiData()
{
SqlCommand cm = new SqlCommand("SELECT * FROM zajezd WHERE akce="+nc_zajezd_vyber, con);
con.Open();
SqlDataReader reader = cm.ExecuteReader();
if (reader.Read())
{
zpocdnu.Text = reader.GetInt32(31).ToString();
zcena3.Text = reader.GetDecimal(6).ToString();
}
con.Close();
}
問題是,它不讀zcena3
因爲在表中的數據類型是numeric
。
在微軟的網站上寫道,我應該用GetDecimal
來閱讀它,但它也不起作用。
有沒有解決方法?
對列位置使用'*'會引起麻煩。寫出列名,例如'GetString(「col1」)' – Andomar
我試過了,應該用什麼替換*? – Marek
什麼** exact **數據類型是SQL Server中的那些列?如果他們是'int','smallint'或'bigint';你需要使用'.GetInt16/.GetInt32/.GetInt64'(而不是'.GetDecimal')。你說使用'GetDecimal' *不起作用* - ***如何***不起作用?你有錯誤嗎?如果是這樣:***什麼錯誤***? –