不允许从数据类型 ntext 到数据类型 varchar 的隐性转换(表 'SCADA.dbo.members',列 'member_login')。请使用 CONVERT 函数来运行此查询。
private string strConn = "data source=localhost;initial catalog=SCADA;user id=sa;password=sa";
    SqlConnection Conn;
    SqlCommand myCommand;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            FillGridView();
        }
    }
    private void FillGridView()
    {
        Conn = new SqlConnection(strConn);
        string strSql = "SELECT * FROM members";
        myCommand = Conn.CreateCommand();
        myCommand.CommandText = strSql;
        Conn.Open();
        myGridView.DataSource = myCommand.ExecuteReader();
        myGridView.DataBind();
        Conn.Close();
    }
    protected void OK_Click(object sender, EventArgs e)
    {
        Conn = new SqlConnection(strConn);
        string insertSql = "INSERT INTO members(member_name,member_login)" +
            "VALUES(@member_name,@member_login)";
        myCommand = Conn.CreateCommand();
        myCommand.CommandText = insertSql;
        myCommand.Parameters.Add("@member_name", SqlDbType.NVarChar, 15);
        myCommand.Parameters.Add("@member_login", SqlDbType.NText);
        myCommand.Parameters["@member_name"].Value = txtCategryName.Text;
        myCommand.Parameters["@member_login"].Value = txtDescription.Text;
        Conn.Open();
        myCommand.ExecuteReader();
        Conn.Close();
        txtCategryName.Text = "";
        txtDescription.Text = "";
        FillGridView();
    }
}
出现那个框的时候,是myCommand.ExecuteReader();这里出错

解决方案 »

  1.   

    不允许从数据类型 ntext 到数据类型 varchar 的隐性转换(表 'SCADA.dbo.members',列 'member_login')。请使用 CONVERT 函数来运行此查询。
    说的很清楚了,楼主的数据库中有个字段是ntext型的,你将varchar类型插入进去的时候要转换下!这是SQL语句执行错误造成的
      

  2.   

    myCommand.Parameters.Add("@member_login", SqlDbType.VarChar);
      

  3.   

    SqlDataReader adr=myCommand.ExecuteReader();
    if(adr....)
    {
      myGridView.DataSource = sdr
      myGridView.DataBind();
    }
      

  4.   


      myCommand.Parameters.Add("@member_login", SqlDbType.NVarChar,200);
    cast(字段 as varchar)   
    convert(varchar(300),字段)   
      

  5.   

    明显你数据库中 member_login  是设计成 varchar的.
    而你在赋值的时候却指定它为 NText类型.
    myCommand.Parameters.Add("@member_login", SqlDbType.NText);
      

  6.   


    myCommand.Parameters.Add("@member_login", SqlDbType.Varchar);
    myCommand.Parameters["@member_login"].Value = txtDescription.Text;下面一句就不用管类型了myCommand.Parameters.AddWithValue("@member_login", txtDescription.Text);