问题描述
stringsql=@"UPDATET_UserSETUserName=@UserName,Department=@DepartmentWHEREUserID=@UserID";stringConnectionString="DataSource=.;InitialCatalog=UserDB;IntegratedSecurity=True";SqlParameter[]parameter={newSqlParameter("@UserName",SqlDbType.VarChar),newSqlParameter("@Department",SqlDbType.Int),newSqlParameter("@UserID",SqlDbType.Int)};parameter[0].SourceColumn="UserName";parameter[0].SourceVersion=DataRowVersion.Current;parameter[1].SourceColumn="Department";parameter[1].SourceVersion=DataRowVersion.Current;parameter[2].SourceColumn="UserID";parameter[2].SourceVersion=DataRowVersion.Original;using(SqlConnectionconn=newSqlConnection(ConnectionString)){if(conn.State!=ConnectionState.Open)conn.Open();SqlDataAdapterada=newSqlDataAdapter();ada.UpdateCommand=newSqlCommand(sql,conn);foreach(SqlParameterparminparameter){ada.UpdateCommand.Parameters.Add(parm);}DataSetds=newDataSet();ada.Update(ds.Tables["T_User"]);//在此出现问题,提示值不能为空,参数名:dataTableds.Clear();}问题出在哪?
解决方案
解决方案二:
DataSetds=newDataSet();ada.Update(ds.Tables["T_User"]);//在此出现问题,提示值不能为空,参数名:dataTable肯定为空你ds里根本没有值你只是把dataset实例化并没有给它值
解决方案三:
是不是没有填充到dataset,ada.fill(ds);不过你更新的操作,直接用SqlCommand更新干嘛要用dataadapter和dataset