使用存储过程将数据插入SQL Server

本文关键字:插入 SQL Server 数据 存储过程 | 更新日期: 2023-09-27 18:21:43

在将记录插入SQL Server时遇到问题。

C#中的字符串不会显示在SQL Server中,因为我正在插入SQL,只插入第一个字符

示例:如果我在数据库中插入22222,则仅插入前2个

注意,这是我第一次使用存储过程。

这是我的代码:

public void insert_workshop(DateTime Pdate, string PTime, string PDesc, byte[] Img)
{
        SqlCommand cmd = new SqlCommand("[InsertWorkShops]", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@WorkshopsDate", SqlDbType.Date).Value = Pdate;
        cmd.Parameters.Add("@Time", SqlDbType.NVarChar).Value = PTime;
        cmd.Parameters.Add("@WorkshopsDescription", SqlDbType.NVarChar).Value = PDesc;
        cmd.Parameters.Add("@WorkshopsImage", SqlDbType.Image).Value = Img;
        cmd.Parameters.Add("@CreatedBy", SqlDbType.NVarChar).Value = 1;
        try
        {
            cmd.ExecuteNonQuery();
            Msg = "Add Done ";
        }
        catch
        {
            Msg = "Error While Adding";
        }
        WorkShopTransactions Ws = new WorkShopTransactions();
        Ws.insert_workshop(WorkShopDT.Value, txtWorshopTime.Text.ToString(),
                          txtWorkshopDescriptions.Text.ToString(), img);

T-SQL:

ALTER PROCEDURE [dbo].[InsertWorkShops] 
    @WorkshopsDate date,
    @Time nvarchar, 
    @WorkshopsDescription nvarchar,
    @WorkshopsImage image,
    @CreatedBy int
AS
BEGIN
    SET NOCOUNT ON;
    insert into Workshops 
    values(@WorkshopsDate, @Time, @WorkshopsDescription, @WorkshopsImage, @CreatedBy)
END

使用存储过程将数据插入SQL Server

在存储过程中,您已经声明了不带长度的nvarchar参数。它们默认为nvarchar(1)