void Insert()
{
try
{
string sql="insert into telnet_et_temp(zwup,zdsb,zusi)values(@zwup,@zdsb,@zusi)";
SqlParameter[] par={
   new SqlParameter("@zwup",SqlDbType.Text,16),
   new SqlParameter("@zdsb",SqlDbType.Text,16),
   new SqlParameter("@zusi",SqlDbType.Text,16)};
par[0].Value=zwupstr;
par[1].Value=zdsbstr;
par[2].Value=zusistr;
using(SqlConnection cn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]))
{
cn.Open();
using(SqlCommand cm=cn.CreateCommand())
{
cm.CommandType=CommandType.Text;
cm.CommandText=sql;
foreach(SqlParameter spt in par)
{
cm.Parameters.Add(spt);
}
cm.ExecuteNonQuery();
}
}
MessageBox.Show("保存日志成功!");
}
catch (System.Exception e)
{
MessageBox.Show(e.Message);
}
}我的数据表里面的字段都是text类型,可是怎么老只插入了几个字符...
谢谢回复!!

解决方案 »

  1.   

    你是不是这个地方出了问题: SqlParameter[] par={
                                           new SqlParameter("@zwup",SqlDbType.Text,16),
                                           new SqlParameter("@zdsb",SqlDbType.Text,16),
                                           new SqlParameter("@zusi",SqlDbType.Text,16)};
    里面的16是不是设置的太短了?
      

  2.   

    那数据库里没是16位,:new SqlParameter("@zwup",SqlDbType.Text,16), 怎么设置呢?
      

  3.   

    SqlDbType类型设置为context类型或者自己写一个关于类型的枚举  长度自己设置
      

  4.   

    你的text文本是不是有换行?
    然后你是怎么知道没插入的?
    用查询分析器,对于换行的文本是看不到的,只能看到第一行。
      

  5.   

    对我的是有"\r\n",就是在查询分析器里将起ctrl+c出来