您好我正在編寫一個c#控制檯應用程序來將數據從一個數據庫遷移到另一個數據庫。 有數據庫行中的圖像,我需要使用@param將這些圖像包含到SQL語句中,並使用ADO.NET執行這些語句。隨機生成用於插入到SQL查詢中的@參數名稱
我需要生成隨機字符串,可以用作@param的名稱,我正在做這樣的事情。
While(blah blah)
{
if (bVisitorPhoto != null)
{
string Picture = RandomString();
SqlParameter picparameter = new SqlParameter();
picparameter.SqlDbType = SqlDbType.Image;
picparameter.ParameterName = Picture;
picparameter.Value = bVisitorPhoto;
command.Parameters.Add(picparameter);
VisitorPhoto = "@"+Picture;
}
string query = "insert into table Values (Picture, "PersonName");
}
public static string RandomString()
{
Random rand = new Random();
string Random_String = "str" + rand.Next(9999999).ToString();
return Random_String;
}
問題是這樣的錯誤
「SqlClient.SqlException」 變量名 '@ str5440049' 已經 被宣佈。
怎麼會這樣呢???但是,一旦我在調試模式下按F11運行程序,就像是一百萬次,我就會面臨這個錯誤
你的'RandomString'需要比這更復雜:[隨機數可以重複](http://search.dilbert.com/comic/Random%20Number%20Generator),所以你應該確保你在相同的查詢中放棄你看到的那些,以避免一勞永逸的錯誤。 – dasblinkenlight