我有一個C#表單鏈接到SQL數據庫,並且對於希望每次添加新行時插入當前日期的列之一。我很困惑,因爲在某一時刻,這段代碼正在做我想要的東西,然後在改變了一些東西后,它現在一直拋出錯誤「無法將參數值從字符串轉換爲Int32。」我不知道發生了什麼。 這是我的表格定義。我知道值類型可能有點任意,但我所關心的是日期存儲爲字符串。無法將參數值從字符串轉換爲Int32的DateTime
CREATE TABLE [dbo].[InvTable] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[Item] NVARCHAR (50) NULL,
[QuantRem] INT NULL,
[Type] NCHAR (10) NULL,
[DateOrd] NCHAR(10) NULL,
[QuantOrd] INT NULL,
[Received] BIT NULL,
[DateRec] NCHAR(10) NULL,
PRIMARY KEY CLUSTERED ([ID] ASC)
);
而窗體上的代碼如下。第二個日期的定義會稍後有所不同,但我最關心的是擺脫標題中的錯誤。
private void Submitbutton1_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Cannot Submit Empty Request");
return;
}
if (comboBox1.SelectedItem == null)
{
MessageBox.Show("Please Use Drop Down Menu To Select Item Category");
return;
}
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand("INSERT INTO InvTable VALUES(@Item, @QuantRem, @Type, @DateReq, @QuantOrd, @Received, @DateRec)", con);
da.InsertCommand.Parameters.Add("@Item", SqlDbType.NChar).Value = textBox1.Text;
da.InsertCommand.Parameters.Add("@QuantRem", SqlDbType.Int).Value = textBox2.Text;
da.InsertCommand.Parameters.Add("@Type", SqlDbType.NChar).Value = comboBox1.Text;
da.InsertCommand.Parameters.Add("@DateReq", SqlDbType.NChar).Value = DateTime.Today.ToString("d");
da.InsertCommand.Parameters.Add("@QuantOrd", SqlDbType.Int).Value = 0;
da.InsertCommand.Parameters.Add("@Received", SqlDbType.Bit).Value = 0;
da.InsertCommand.Parameters.Add("@DateRec", SqlDbType.NChar).Value = DateTime.Today.ToString("d");
con.Open();
da.InsertCommand.ExecuteNonQuery();
da.SelectCommand = new SqlCommand("SELECT * FROM InvTable WHERE Received=0", con);
con.Close();
ds.Clear();
da.Fill(ds);
invTableDataGridView.DataSource = ds.Tables[0];
textBox1.Clear();
}
因此,此代碼用於在一個點工作,給我一個字符串「07/20/2015」,但現在它只是給了我一個錯誤。
爲什麼你用文本代表一個日期呢?如果您可能*可以,您應該在數據庫中使用'Date'字段。至於你的問題中的問題 - 我建議你明確地做你的代碼解析,例如'int.Parse(textBox2.Text)'。我*懷疑*這是問題所在,但你應該能夠解決這個問題。 –
您確定它不是從textBox2轉換的QuantRem ** int **值。 **文本**這就是問題所在?日期**字符串**在任何時間點都沒有經過任何轉換 –
這只是爲了完成日誌時的目的......沒有真正的數據功能。將使用日期字段解決問題? – anesthetic