情况是这样的。我用一个存储过程向表添加数据。
//用存储过程添加,提示错误,错误提示我写在下面了。
private void Button1_Click(object sender, System.EventArgs e)
{

SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"].ToString());
conn.Open();
SqlCommand cd=new SqlCommand("test3",conn);
cd.CommandType=CommandType.StoredProcedure;
cd.Parameters.Add(new SqlParameter("@A",SqlDbType.DateTime,8));
cd.Parameters["@A"].Value=a.Text;
cd.ExecuteNonQuery();
conn.Close();
}
//用语句添加,成功。
private void Button2_Click(object sender, System.EventArgs e)
{
string c;
c=TextBox1.Text;
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"].ToString());
conn.Open();
SqlCommand cd=new SqlCommand("insert into test2 values('"+c+"')",conn);
cd.ExecuteNonQuery();
conn.Close();
}表
create table test2
(
   a datetime
)存储过程
CREATE   PROCEDURE test3
@A datetime
as
insert into test2 
values('@A')
错误:
从字符串转换为 datetime 时发生语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 从字符串转换为 datetime 时发生语法错误。