2009-08-16 62 views
1

我有一個插入日期時間格式變量到Sql Server 2005數據庫的問題。 日期時間格式爲dd.mm.yyyy插入日期時間到Sql Server 2005中

conn.Open(); 

       string conString = "SET DATEFORMAT DMY INSERT INTO AmortPlanT (InvestmentID,StartDate,Maturity,IRate,CoupPerYear,parValue) Values (@IIndex,'@StartDate','@Maturity',@IRate,@CouponPerYear,@parValue)"; 

       using (SqlCommand myCommand = new SqlCommand(conString, conn)) 
       { 
        myCommand.CommandType = CommandType.Text; 
        myCommand.Parameters.Add("@IIndex", SqlDbType.Int).Value = investmentIndex; 
        myCommand.Parameters.Add("@StartDate", SqlDbType.DateTime).Value = startDate; 
        myCommand.Parameters.Add("@Maturity", SqlDbType.DateTime).Value = maturity; 
        myCommand.Parameters.Add("@IRate", SqlDbType.Float).Value = iRate; 
        myCommand.Parameters.Add("@CouponPerYear", SqlDbType.Int).Value = coupPerYear; 
        myCommand.Parameters.Add("@parValue", SqlDbType.Float).Value = parValue; 

        myCommand.ExecuteNonQuery(); 

       } 

起始日期和到期日期時間是我的變量從dateTimePicker.Value得到。

我總是得到錯誤:從字符串轉換日期時間時

轉換失敗。

謝謝你的幫助。

回答

2

你不應該把你的參數報價..這裏是正確的查詢..

「@StartDate」人們的價值觀條款是錯誤的,它應該只是@StartDate ...解釋如下。 ..

conn.Open(); 
    string conString = "SET DATEFORMAT DMY INSERT INTO AmortPlanT 
(InvestmentID,StartDate,Maturity,IRate,CoupPerYear,parValue) Values 
(@IIndex,@StartDate,@Maturity,@IRate,@CouponPerYear,@parValue)";     
using (SqlCommand myCommand = new SqlCommand(conString, conn)) 
    {      
    myCommand.CommandType = CommandType.Text;      
    myCommand.Parameters.Add("@IIndex", SqlDbType.Int).Value = investmentIndex;      
    myCommand.Parameters.Add("@StartDate", SqlDbType.DateTime).Value = startDate;      
    myCommand.Parameters.Add("@Maturity", SqlDbType.DateTime).Value = maturity;      
    myCommand.Parameters.Add("@IRate", SqlDbType.Float).Value = iRate;     myCommand.Parameters.Add("@CouponPerYear", SqlDbType.Int).Value = coupPerYear;      
myCommand.Parameters.Add("@parValue", SqlDbType.Float).Value = parValue;     myCommand.ExecuteNonQuery();     
} 
1

的問題是,你是在字符串的思維......

DateTime Format is dd.MM.yyyy

不,它不是; DateTime(當作爲參數傳遞時)的格式實際上只是一個二進制數; -p(startDate應該是DateTime - 而不是string)。

當您使用的參數,你不包括字符串標記(') - 否則,你的意思是「字符串'@name'」,而不是「字符串參數@name舉行」;嘗試刪除它們:

string conString = @" 
SET DATEFORMAT DMY INSERT INTO AmortPlanT (InvestmentID,StartDate,Maturity,IRate,CoupPerYear,parValue) 
VALUES (@IIndex,@StartDate,@Maturity,@IRate,@CouponPerYear,@parValue)"; 
相關問題