使用SqlTransaction将日期从日历选取器存储到SQL Server中-Visual studio 2015/C
本文关键字:Server SQL -Visual studio 2015 存储 日期 SqlTransaction 日历 选取 使用 | 更新日期: 2023-09-27 18:27:44
由于某些原因,我似乎无法将日期选择器中的值传递到SQL事务中并将其存储在数据库中。当我使用"硬编码"数据进行测试时,它运行良好。但现在,当我尝试从日历选择器中传递日期时,它会爆炸并抛出语法错误。
点击按钮执行的代码:
string connString = ConfigurationManager.ConnectionStrings["sampConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand("procinsert", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", TextBox1.Text);
cmd.Parameters.AddWithValue("@email", TextBox2.Text);
cmd.Parameters.AddWithValue("@datesaved", Calendar1.SelectedDate);
处理插入的SQL Server存储过程:
CREATE PROCEDURE [dbo].[procinsert]
@name varchar(100),
@email varchar(320),
@datesaved date
AS
begin
begin transaction
begin try
insert into dataentry (name, email, dateadded)
values(@name, @email, @datesaved)
end try
begin catch
select ERROR_MESSAGE(),ERROR_SEVERITY()
if @@trancount >0
rollback transaction
end catch
if @@Trancount >0
commit transaction
end
就我的一生而言,我不知道为什么我会出现语法错误:
在此处输入图像描述
如有任何帮助,我们将不胜感激!
谢谢。
你得到了什么错误?没有这些信息很难判断,但首先可能出错的是Calendar1.SelectedDate为您提供了完整的DateTime对象(带时间的日期),而在SQL过程中,您需要纯date类型。
要么尝试只通过日期部分:
cmd.Parameters.AddWithValue("@datesaved", Calendar1.SelectedDate.ToString("g"));
或者更改程序中的参数类型:
@datesaved datetime2