gpt4 book ai didi

c# - INSERT 语句的问题(我认为)

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:08 25 4
gpt4 key购买 nike

我正在为我的老板开发报价管理器,但我遇到了一些问题。这是一个 WPF C# 应用程序,这是我第一次构建任何可与 SQL Server 数据库一起使用的应用程序。我目前遇到三个问题。

背景:

当用户打开应用程序时,他们会看到一个 DataGrid、一个新的引号按钮和几个我尚未创建的其他控件。当他们按下新报价按钮时,会弹出一个新窗口,其中包含一个表单,其中包含客户名称、数量等内容的文本框。该表单底部是一个提交按钮,此时窗口将关闭,他们添加的信息将作为新行插入到 DataGrid 中。

问题一:

我的数据库中的一个字段称为 Open_Quote,它应该保存我们收到订单的日期。这是以编程方式处理的,这是我的第一个问题。我将在这篇文章的底部包含所有代码,但是当用户点击提交时,我收到以下错误:“从字符串转换日期和/或时间时转换失败。”

问题二:

为了测试我的其余代码并稍后返回以修复日期问题,我注释掉了该代码并尝试再次运行我的程序。这次我得到了一个不同的错误:“'newQuote.Qty' 周围的语法不正确。”

问题三:

再次注释掉该代码以最终测试我的其余代码,我收到第三个错误:“字符串或二进制数据将被截断。此过程已终止。”

我希望只有一段代码会导致所有这三个问题,但我可以完全脱离那里。我已经花了一天多的时间试图解决这个问题。无论如何,这是代码:

newQuote.xaml.cs:

    private void SubmitQuotebtn_Click(object sender, RoutedEventArgs e)
{
CustomerData newQuote = new CustomerData();

int quantity;
quantity = Convert.ToInt32(Qtytxt.Text);

string theDate = System.DateTime.Today.Date.ToString("d");

newQuote.OpenQuote = theDate;
newQuote.CustomerName = CustNametxt.Text;
newQuote.OEMName = OemNametxt.Text;
newQuote.Qty = quantity;
newQuote.QuoteNumber = QuoteNumtxt.Text;
newQuote.FdNumber = FabDrawingNumtxt.Text;
newQuote.RfqNumber = RfqNumtxt.Text;
newQuote.RevNumber = RevNumtxt.Text;

try
{
string insertConString = Sqtm.Properties.Settings.Default.SqtmDbConnectionString;

using (SqlConnection insertConnection = new SqlConnection(insertConString))
{
insertConnection.Open();

SqlCommand cmd = new SqlCommand("INSERT INTO General_Info(Open_Quote, Customer_Name, OEM_Name, Qty, Quote_Num, Fab_Drawing_Num, "
+ "Rfq_Num, Rev_Num) values('newQuote.OpenQuote', 'newQuote.CustomerName', 'newQuote.OemName', 'newQuote.Qty' "
+ "'newQuote.QuoteNumber', 'newQuote.FdNumber', 'newQuote.RfqNumber', 'newQuote.RevNumber')", insertConnection);

cmd.ExecuteNonQuery();

}
}

catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

客户数据.cs:

    class CustomerData
{
private string _CustomerName;
private string _OEMName;
private string _OpenQuote;
private int _Qty;
private string _QuoteNumber;
private string _FdNumber;
private string _RfqNumber;
private string _RevNumber;

public CustomerData()
{
// empty constructor
}

public string CustomerName
{
get { return _CustomerName; }
set { _CustomerName = value; }
}

public string OpenQuote
{
get { return _OpenQuote; }
set { _OpenQuote = value; }
}

public string OEMName
{
get { return _OEMName; }
set { _OEMName = value; }
}

public int Qty
{
get { return _Qty; }
set { _Qty = value; }
}

public string QuoteNumber
{
get { return _QuoteNumber; }
set { _QuoteNumber = value; }
}

public string FdNumber
{
get { return _FdNumber; }
set { _FdNumber = value; }
}

public string RfqNumber
{
get { return _RfqNumber; }
set { _RfqNumber = value; }
}

public string RevNumber
{
get { return _RevNumber; }
set { _RevNumber = value; }
}
}

作为引用,以下是我在 SQLServer 中设置此表的方式:

Open_Quote, date, not null
Customer_Name, varchar(25), not null
OEM_Name, varchar(25), null
Qty, int, not null
Qute_Num, varchar(20), null
Fab_Drawing_Num, varchar(20), not null
Rfq_Num, varchar(10), null
Rev_Num, varchar(10), null

在此先感谢所有帮助我的人,

  • 安德鲁

最佳答案

再试一次参数,让我们知道进展如何。 http://www.dotnetperls.com/sqlparameter

编辑:或者 Tieson T. 所说的。如果多参与一点,那就更好了。

要让数据显示在数据网格中,在插入后,您可以重新绑定(bind)网格。确保您更新了数据源,以便它可以取消您刚刚插入的数据。如果您遇到问题,请说明您在哪里/如何为网格设置数据源。

关于c# - INSERT 语句的问题(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328436/

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