我得到這個錯誤...必須聲明標量變量
必須聲明標量變量「@Photo」
我插入的代碼看起來是這樣的......
if (image1.Source != null)
{
FileStream fs = new FileStream("@Photo", FileMode.Open, FileAccess.Read);
byte[] imgByteArr = new byte[fs.Length];
fs.Read(imgByteArr, 0, Convert.ToInt32(fs.Length));
cmd.Parameters.Add(new SqlParameter("Photo", imgByteArr));
}
else
{
nonqueryCommand.Parameters.AddWithValue("@Photo", DBNull.Value);
}
SQL服務器:列名Photo
和數據類型image
我試過this網站的例子。我修改了一點,因爲該網站使用一個點擊事件處理程序,因爲我想使用兩個點擊事件處理程序。一個用於瀏覽按鈕,另一個用於插入數據。下面的代碼是在插入提手
FileStream fs = new FileStream("@Photo", FileMode.Open, FileAccess.Read);
byte[] data = new byte[fs.Length];
fs.Read(data, 0, System.Convert.ToInt32(fs.Length));
nonqueryCommand.Parameters.AddWithValue("@Photo", data);
上面的代碼是給我的錯誤...
找不到文件「C:.... \ BIN \調試\ @Photo 」。
我想這給了我錯誤,因爲我沒有使用開放對話框編碼相同的方法。
如果有人可以幫助我,請提前致謝。
更新1A
這將需要一點時間讓我掌握,所以我會離開。我會接受那些幫助過的人的建議。由於
'ntext','text'和'image'數據類型的缺失
@
將在SQL Server的未來版本中刪除。避免在新的開發工作中使用這些數據類型,並計劃修改當前正在使用它們的應用程序。改爲使用'nvarchar(max)','varchar(max)'和'varbinary(max)'。 [在此處查看詳細信息](http://msdn.microsoft.com/en-us/library/ms187993.aspx) –@marc_s - 我已在本網站上看到您提到的任何評論。建議使用varchar(max)和varbinary(max)來代替圖像。所以我會谷歌,如果有例子。謝謝你讓我知道 – bucketblast
代替'image' - 使用'varbinary(max)'(不是'varchar(max)' - 這是文本數據) –