का उपयोग कर डेटा डालने में त्रुटि मैं SqlBulkCopy
का उपयोग कर SQL 2008 में सम्मिलित डेटा बैच करने का प्रयास कर रहा हूं।SqlBulkCopy
IF OBJECT_ID(N'statement', N'U') IS NOT NULL
DROP TABLE [statement]
GO
CREATE TABLE [statement](
[ID] INT IDENTITY(1, 1) NOT NULL,
[date] DATE NOT NULL DEFAULT GETDATE(),
[amount] DECIMAL(14,2) NOT NULL,
CONSTRAINT [PK_statement] PRIMARY KEY CLUSTERED
(
[ID] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
यहाँ है मेरी कोड:
private DataTable GetTable()
{
var list = new List<DataColumn>();
list.Add(new DataColumn("amount", typeof(SqlDecimal)));
list.Add(new DataColumn("date", typeof(SqlDateTime)));
var table = new DataTable("statement");
table.Columns.AddRange(list.ToArray());
var row = table.NewRow();
row["amount"] = (SqlDecimal)myObj.Amount; // decimal Amount { get; set; }
row["date"] = (SqlDateTime)myObj.Date; // DateTime Date { get; set }
table.Rows.Add(row);
return table;
}
private void WriteData()
{
using (var bulk = new SqlBulkCopy(strConnection, SqlBulkCopyOptions.KeepIdentity & SqlBulkCopyOptions.KeepNulls))
{
//table.Columns.ForEach(c => bulk.ColumnMappings.Add(new SqlBulkCopyColumnMapping(c.ColumnName, c.ColumnName)));
bulk.BatchSize = 25;
bulk.DestinationTableName = "statement";
bulk.WriteToServer(GetTable()); // a table from GetTable()
}
}
तो मैं हो रही है त्रुटि:
यहाँ मेरी मेज है
The given value of type
SqlDateTime
from the data source cannot be converted to typedate
of the specified target column.
क्यों ?? मैं कैसे इसे ठीक कर सकता हूं? कृपया मेरी मदद करें!
क्या यह "एसक्यूएलकल्क कॉपीऑप्शन। कीपइडेन्टिटी | एसक्यूएलकल्क कॉपीऑप्शन .किपनल्स" नहीं होना चाहिए? – rusty