我正在为我的老板在工作中使用报价管理器,但我遇到了一些问题。这是一个 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
提前感谢任何帮助我的人,
- 安德鲁