使用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; }
}