gpt4 book ai didi

c# - 从文件中给出存储过程的输入参数

转载 作者:行者123 更新时间:2023-11-30 16:00:29 25 4
gpt4 key购买 nike

我有一个包含 3 个参数的存储过程,我认为我的存储过程的第一个参数不正确。

string path = @"D:\test2";
var ngd = Directory.EnumerateFiles(path, "*.txt").Select(file => File.ReadAllLines(file)).FirstOrDefault();
using (SqlConnection connection = new SqlConnection("Data Source=;Initial Catalog=;User ID=;Password="))
{
using (SqlCommand cmd = new SqlCommand("usp_SaveData", connection))
{
try
{
await Task.Delay(1500);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@request_xml", SqlDbType.NVarChar, 999999).Value = ngd;
cmd.Parameters.Add("@ST", SqlDbType.NVarChar, 50).Value = MachineName;
cmd.Parameters.Add("@SN", SqlDbType.NVarChar, 50).Value = listBoxItem;
cmd.ExecuteNonQuery();
MessageBox.Show("Good");
connection.Open();
}
catch
{
MessageBox.Show("Verification failed!");
}
}
}

我在 SQL 中运行我的存储过程并且一切正常,我运行了一个只需要 @ST,@SN 的不同过程并且它工作但现在在这个我将 request_xml 指定为

的过程
var ngd = Directory.EnumerateFiles(path, "*.txt").Select(file => File.ReadAllLines(file)).FirstOrDefault(); 

它不工作...

我的问题是,我应该将文件中的数据以不同的方式存储在变量中吗?是否有“正确的方法”将文件存储在输入参数可以使用的变量中?

最佳答案

问题是您正在使用 ReadAllLines,它返回 stringarray,每个元素都是文件中的一行。

因此在下面的行中,您实际上传递的是 string[] 而不是 string

cmd.Parameters.Add("@request_xml", SqlDbType.NVarChar, 999999).Value = ngd;

您应该改用 ReadAllText,它返回单个 string

var ngd = Directory.GetFiles(path, "*.txt").Select(file => File.ReadAllText(file)).FirstOrDefault();

关于c# - 从文件中给出存储过程的输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40079828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com