我有一个指定控件的表单
这是我点击插入按钮
时的代码private void btnInsertRArtist_Click(object sender, EventArgs e)
{
SqlCommand comand = new SqlCommand("InsertRecordingArtists", conect);
comand.CommandType = CommandType.StoredProcedure;
try
{
if (txtboxRArtistName.Text == string.Empty || txtboxPlaceOB.Text == "")
{
errorProvider1.SetError(txtboxRArtistName, "Enter the Music category");
}
else
{
conect.Open();
comand.Parameters.AddWithValue("@RecordingArtistName", txtboxRArtistName.Text);
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1);
comand.Parameters.AddWithValue("@BirthPlace", txtboxPlaceOB.Text);
SqlDataAdapter adapt = new SqlDataAdapter(comand);
comand.ExecuteNonQuery();
txtboxRArtistName.Text = "";
}
}
finally
{
conect.Close();
}
}
但是当我插入数据时会出现此异常
我能在这做什么......我的商店程序也在这里
ALTER PROCEDURE InsertRecordingArtists
@RecordingArtistName text,
@DateOfBirth datetime,
@BirthPlace text
AS 开始 INSERT INTO [MusicCollection]。[dbo]。[RecordingArtists] ([RecordingArtistName],[DATEOFBIRTH],[出生地]) VALUES (@ RecordingArtistName,@ DATEOFBIRTH,@出生地)
答案 0 :(得分:2)
您不能将DateTimePicker
实例用作查询参数。请改用DateTimePicker.Value
:
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1.Value);
答案 1 :(得分:1)
更改您的
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1);
到
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1.Text);
您所做的是无法添加DateTimePicker
实例作为参数。 AddWithValue
方法将string作为第二个参数。使用Value
或Text
属性。
答案 2 :(得分:0)
dateTimePicker1是一个控件,而不是DateTime值。 您需要从以下位置获取DateTime值:
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1.Value.ToString());
答案 3 :(得分:0)
您需要dateTimePicker1
的值,您应该更改:
command.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1);
到
command.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1.Value);
答案 4 :(得分:0)
丹尼斯说的是正确的。此外,如果它不起作用,您可能希望显示错误消息。
例如:
private void btnInsertRArtist_Click(object sender, EventArgs e)
{
SqlCommand comand = new SqlCommand("InsertRecordingArtists", conect);
comand.CommandType = CommandType.StoredProcedure;
try
{
if (txtboxRArtistName.Text == string.Empty || txtboxPlaceOB.Text == "")
{
errorProvider1.SetError(txtboxRArtistName, "Enter the Music category");
}
else
{
conect.Open();
comand.Parameters.AddWithValue("@RecordingArtistName", txtboxRArtistName.Text);
comand.Parameters.AddWithValue("@DateOfBirth", dateTimePicker1.Value);
comand.Parameters.AddWithValue("@BirthPlace", txtboxPlaceOB.Text);
SqlDataAdapter adapt = new SqlDataAdapter(comand);
comand.ExecuteNonQuery();
txtboxRArtistName.Text = "";
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conect.Close();
}
}