私は職場で上司の見積もりマネージャーに取り組んでいますが、いくつか問題があります。これはWPFC#アプリケーションであり、SQLServerデータベースで動作するものを作成したのはこれが初めてです。現在、3つの問題が発生しています。
バックグラウンド:
ユーザーがアプリケーションを開くと、DataGrid、新しい見積もりボタン、およびまだ作成していない他のいくつかのコントロールが表示されます。新しい見積もりボタンを押すと、新しいウィンドウがポップアップし、顧客名や数量などのテキストボックスが表示されます。フォームの下部には送信ボタンがあり、その時点でウィンドウが閉じて、追加した情報は、新しい行としてDataGridに挿入されます。
問題1:
私のデータベースのフィールドの1つはOpen_Quoteと呼ばれ、注文を受け取った日付を保持することになっています。これはプログラムで処理され、私の最初の質問に含まれます。この投稿の下部にすべてのコードを含めますが、ユーザーが送信を押すと、「文字列から日付や時刻を変換するときに変換に失敗しました」というエラーが表示されます。
問題2:
残りのコードをテストし、後で戻って日付の問題を修正するために、そのコードをコメントアウトして、プログラムを再実行してみました。今回は別のエラーが発生します:「'newQuote.Qty'の周りの構文が正しくありません。」
問題3:
繰り返しになりますが、残りのコードを最終的にテストするためにそのコードをコメントアウトすると、「文字列またはバイナリデータが切り捨てられます。このプロセスは終了しました」という3番目のエラーが発生しました。
私の望みは、これら3つの問題すべてを引き起こしている1つのコードがあることですが、私は完全にそこから離れている可能性があります。私はこれを理解しようとして1日以上髪を抜いてきました。とにかく、ここにコードがあります:
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);
}
}
CustomerData.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
私を助けてくれる人に事前に感謝します、
- アンドリュー