A tip about ADO.NET

Standard

通过ADO.NET取得的DataTable,Dataset中DataColumn的MaxLength属性有时取不到想要的值,比如有个varchar类型的字段,长度应该是100,但是返回的确是-1。

当然可以通过其他方式取得表的Schame信息,但这样多了一步。

通过查资料发现这是微软的一个BUG。解决办法很简单,设置一下SqlDataAdapter的MissingSchemaAction属性:

string strQuery = "SELECT * FROM tbl_MyTable";
objConn = new SqlConnection(strConnString);
objConn.Open();
objCmd = new SqlCommand(strQuery, objConn);
objDA = new SqlDataAdapter(objCmd);
objDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
objDS = new DataSet();
int iCount = objDA.Fill(objDS);

Leave a Reply

Your email address will not be published. Required fields are marked *