c#应用实战-每日一练(三):手把手教你如何向数据库中添加合乎各式的数据

使用c#编写一个方法,要求使用sql语句,向数据库中添加如下数据:@Date @SN @ProcessDataJsonStr @TotalResult @Upload @BackJsonStr @TimeIndex @RecipeName 。要求使用SqlParameter将数据的格式转换为数据库中数据的格式。最后,使用sql查询语句,查询是否添加成功。代码如下:

using System;  
using System.Data;  
using System.Data.SqlClient;  
  
public class DatabaseOperations  
{  
    // 假设这是你的数据库连接字符串  
    private readonly string connectionString = "你的数据库连接字符串";  
  
    public bool InsertProcessDataAndVerify(plcProcessData plcData, string reportData, int reportStatus)  
    {  
        // 定义SQL命令来插入数据  
        string insertSql = "INSERT INTO Jonhon_Process_Data (Date, SN, ProcessDataJsonStr, TotalResult, Upload, BackJsonStr, TimeIndex, RecipeName) " +  
                           "VALUES (@Date, @SN, @ProcessDataJsonStr, @TotalResult, @Upload, @BackJsonStr, @TimeIndex, @RecipeName)";  
  
        // 定义SQL命令来查询数据(这里使用SN作为示例,假设它是唯一的)  
        string verifySql = "SELECT COUNT(*) FROM Jonhon_Process_Data WHERE SN = @SN AND Date = @Date AND TimeIndex = @TimeIndex";  
  
        // 使用SqlConnection和SqlCommand来执行SQL语句  
        using (SqlConnection conn = new SqlConnection(connectionString))  
        {  
            try  
            {  
                conn.Open();  
  
                // 创建SqlCommand来插入数据  
                using (SqlCommand insertCmd = new SqlCommand(insertSql, conn))  
                {  
                    // 添加SqlParameter  
                    insertCmd.Parameters.AddWithValue("@Date", plcData.Date.ToString("yyyy-MM-dd")); // 假设plcData有一个Date属性  
                    insertCmd.Parameters.AddWithValue("@SN", plcData.productBarCode);  
                    insertCmd.Parameters.AddWithValue("@ProcessDataJsonStr", reportData);  
                    insertCmd.Parameters.AddWithValue("@TotalResult", plcData.totalResult == "1" ? 1 : 0); // 假设totalResult是字符串"1"或其他,转换为int  
                    insertCmd.Parameters.AddWithValue("@Upload", reportStatus);  
                    insertCmd.Parameters.AddWithValue("@BackJsonStr", "");  
                    insertCmd.Parameters.AddWithValue("@TimeIndex", DateTime.Now.ToString("yyyyMMddHHmmss"));  
                    insertCmd.Parameters.AddWithValue("@RecipeName", plcData.currentRecipeName);  
  
                    // 执行插入操作  
                    int rowsInserted = insertCmd.ExecuteNonQuery();  
                    if (rowsInserted > 0)  
                    {  
                        // 插入成功后,执行查询以验证  
                        using (SqlCommand verifyCmd = new SqlCommand(verifySql, conn))  
                        {  
                            verifyCmd.Parameters.AddWithValue("@SN", plcData.productBarCode);  
                            verifyCmd.Parameters.AddWithValue("@Date", plcData.Date.ToString("yyyy-MM-dd"));  
                            verifyCmd.Parameters.AddWithValue("@TimeIndex", DateTime.Now.ToString("yyyyMMddHHmmss"));  
  
                            int count = Convert.ToInt32(verifyCmd.ExecuteScalar());  
                            if (count > 0)  
                            {  
                                Console.WriteLine("数据添加成功并已验证。");  
                                return true;  
                            }  
                            else  
                            {  
                                Console.WriteLine("数据添加成功但验证失败,可能数据已存在或有其他问题。");  
                                return false;  
                            }  
                        }  
                    }  
                    else  
                    {  
                        Console.WriteLine("数据添加失败。");  
                        return false;  
                    }  
                }  
            }  
            catch (Exception ex)  
            {  
                Console.WriteLine("数据库操作出错:" + ex.Message);  
                return false;  
            }  
        }  
    }  
}  
  
// 假设的plcProcessData类  
public class plcProcessData  
{  
    public DateTime Date { get; set; } // 假设你有一个Date属性  
    public string productBarCode { get; set; }  
    public string totalResult { get; set; } // 假设totalResult是字符串  
    public string currentRecipeName { get; set; }  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值