c11*_*ada 5 c# sql-server ado.net exception-handling sql-insert
嘿所有我正在尝试执行以下插入查询
SqlDataSource userQuizDataSource = new SqlDataSource();
userQuizDataSource.ConnectionString = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=quizApp;Integrated Security=True";
userQuizDataSource.InsertCommand = "INSERT INTO [UserQuiz] ([DateTimeComplete], [Score], [UserName]) VALUES (@DateTimeComplete, @Score, @UserName)";
userQuizDataSource.InsertParameters.Add("DateTimeComplete", DateTime.Now.ToString());
userQuizDataSource.InsertParameters.Add("Score", score.ToString());
userQuizDataSource.InsertParameters.Add("UserName", User.Identity.Name);
int rowsAffected = userQuizDataSource.Insert();
Run Code Online (Sandbox Code Playgroud)
Buti不断收到以下错误:
将nvarchar数据类型转换为smalldatetime数据类型会导致超出范围的值.该语句已终止.
谁能帮我吗?
你的语句返回什么DateTime.Now.ToString()?
您的 SQL Server 需要什么语言和区域设置?
你那里有不匹配吗???也许您的 .NET 返回一种MM/dd/yyyy格式,而 SQL Server 需要这种格式dd/MM/yyyy(反之亦然)。
在您的 SQL Server 中尝试以下代码:
DECLARE @test TABLE (smalldate SMALLDATETIME)
INSERT INTO @test VALUES ('02/21/2010 22:00:32') --
SELECT * FROM @test
Run Code Online (Sandbox Code Playgroud)
将我的字符串替换为您从 .NET 获得的输出DateTime.Now.ToString()- 这有效吗?SQL Server 是否会为您提供更好的错误消息?
接下来,尝试使用 ISO-8601 日期格式 (YYYYMMDD) - 这适用于SQL Server 中的所有区域和语言设置 - 这有效吗?
DECLARE @test TABLE (smalldate SMALLDATETIME)
INSERT INTO @test VALUES ('20100221 22:00:32') --
SELECT * FROM @test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33489 次 |
| 最近记录: |