該程序使用C#WinForms和SQL Server 2008.當我想輸入包含一個DateTimePicker我可以看到的是,措辭是在荷蘭,然後我得到一個錯誤有關的價值轉換。有什麼辦法可以預先編程來解決這個問題嗎?我發現了這個錯誤,現在就是這樣。一個程序在我的電腦上工作正常,但是當我用另一個Windows荷蘭語發送它時,它與DateTimePicker存在問題
try
{
SqlConnection connect = new SqlConnection("Data Source=Localhost\\SQLExpress;Initial Catalog=DataBase;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
/******************** Inserting ********************/
string query = "INSERT INTO spending VALUES (";
query += "'" + date_dateTimePicker.Value + "', "; // Date
query += "'" + Convert.ToDecimal(amount_spent_textBox.Text) + "', "; // Amount spent
query += "'" + spent_on_textBox.Text + "')"; // Spent on
connect.Open();
da.InsertCommand = new SqlCommand(query, connect);
da.InsertCommand.ExecuteNonQuery();
connect.Close();
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
事情變得厚。我試圖插入一個dateTimePicker的值到數據庫的方式,我用上面的代碼做同樣得到這個錯誤。它在我的電腦上工作得很好,但在這裏不起作用。有人可以解釋嗎?以下是錯誤:使用
代碼:
string update = "UPDATE table SET the_date = '" + the_date_dateTimePicker.Value + "' WHERE instance_ID = 1";
connect.Open();
da.InsertCommand = new SqlCommand(update, connect);
da.InsertCommand.ExecuteNonQuery();
connect.Close();
好這裏是我現在工作的形式,在一個顯示this error完整的代碼。大多數形式的結構是這樣,所以如果我得到這個權利,不應該有與他們的其餘任何問題。我正在測試這個在我的電腦上,所以如果它在這裏工作,它也應該在那裏工作。
看看,我不知道該怎麼辦了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TheNamespace
{
public partial class submit_spending : Form
{
public submit_spending()
{
InitializeComponent();
}
private void submit_button_Click(object sender, EventArgs e)
{
try
{
SqlConnection connect = new SqlConnection("Data Source=Localhost\\SQLExpress;Initial Catalog=TheDataBase;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
/******************** Inserting ********************/
string query = "INSERT INTO spending VALUES (@date, @amount_spent, @spent_on)";
SqlCommand command = new SqlCommand(query);
command.Parameters.AddWithValue("date", date_dateTimePicker.Value);
command.Parameters.AddWithValue("amount_spent", Convert.ToDecimal(amount_spent_textBox.Text));
command.Parameters.AddWithValue("spent_on", spent_on_textBox.Text);
connect.Open();
da.InsertCommand = new SqlCommand(query, connect);
da.InsertCommand.ExecuteNonQuery();
connect.Close();
if (MessageBox.Show("Submitted.", "Spending submitted", MessageBoxButtons.OK) == DialogResult.OK)
{
this.Close();
}
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}
private void cancel_button_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
需要代碼,您從選取器中獲取日期。不應該包含任何字符串日期轉換。 –
@TonyHopkinson 有插入值的代碼,它不能在那臺計算機上做,所以我有捕獲,這就是我得到的錯誤圖像。 – Alternatex
@Tony實際上,考慮到他似乎在串聯一個字符串來構建查詢,看起來就像是這樣。 –