7月的误会(2)

本文围绕获取Access中所有表名展开,作者与mvm交流过程中产生误会。mvm给出在ASP.NET里用CSharp列出Access 2003表名的程序,需添加ADO引用;作者最终用System.Data.OleDb方法成功,无需添加引用,还提及双方应冷静思考交流问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何获取access中的所有表名? 代价:老典型...
问了mvm问题,mvm回答了我。虽然不是我想的办法,不想当了典型。
详见
http://blog.joycode.com/mvm/archive/2004/07/27/28502.aspx

Mvm语
-------------------------
我从看到他的信,到搜索,到scan搜索结果,到找到答案,甚至还包括验证那条SQL是否真的有效,总共花了才不过两三分钟。

那么这么容易就能够找到答案的问题,为什么给我写信的那位还要写信来问我呢?是不是因为掌握的资源不够多,不知道http://groups.google.com?还是因为英语不够好,因而无法选择有效的关键字?其实我并不觉得我自己是一个优秀程序员,但至少我不会去问别人一个在Internet上或者MSDN里面很容易能够搜索到答案的问题。以前也有很多人觉得优快云和Newsgroup里面的很多人总是问一些答案唾手可得的问题,因而有感于中国程序员的一些有待提高的地方,我从今天这件事情上,也有类似的感觉吧。

Btw,如果用百度搜索关键字“Microsoft Access 所有表”,返回的第一条就是正确答案。如此轻易。
-------------------------

对于这种指责,若真是如mvm所言,也就算了。被盲目画为典型,还是颇有气愤的心情啊。回头想想我哪里做错了?
于是回答mvm
-------------------------
Mvm,我就是那个“不争气的”程序员!我终于抽出点时间再次光临您的blog...原来你对我本人的评价不怎么好么。首先我想声明的是,您的评论似乎有些武断。对您的话 我首先作为一个求教者对你表示感谢。不过是想说明,我再问您之前已经在google上搜索过2个小时,至于msdn我也搜索过了,找到的方法早已经包括了您第一次提供的方法。该2种方法我都测试过不符合要求,或者说行不通。具体的原因在第二封信中我详细说明了,但是您似乎已经断定我是个初,只是叫我提升asp.net权限。其实我是个5年的程序员了。不用说很注意搜索先,并注意询问有可能知道人的,最后才问不相识的您,并且了解提问的技巧。并且我想我在第二次的信中委婉提出了我要的答案不是那样,并想和您交个朋友。呵呵。看来您没想仔细看。感谢“开心就好”对http://groups.google.com不能访问的解释。在给mvm第二次的信中提到,但是您并没有在意。感谢来自博客堂的人们开心、重粒子、Ripper等等,感谢mvm的两次回答。本来在总结了这个没解决的问题后,再来看看您的blog。不幸当了典型...一个老典型:(
------------------------

给mvm同志留言以后 mvm好人做到底

------------------------

又:这位问我问题的朋友后来又跟我说我给的答案不对,云云,具体的可以见下面的留言。

那么既然如此,好人做到底,我把在ASP.NET里面用CSharp列出Access 2003里面所有的Table名字的程序贴一下:

private string GetTableList()
{
    string result=""; 
    ADODB.Connection Cn=new ADODB.ConnectionClass(); 
    ADODB.Command Cmd=new ADODB.CommandClass(); 
    ADODB.Recordset Rs1; 
    Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://Inetpub//wwwroot//AccessTables//aaa.mdb","Admin","",0); 
    Rs1 = Cn.OpenSchema(ADODB.SchemaEnum.adSchemaTables,System.Reflection.Missing.Value,System.Reflection.Missing.Value); 
    do{ 
        foreach(ADODB.Field field in Rs1.Fields){ 
            result+=field.Value+";"; 
        } 
        result+="/r/n"; 
        Rs1.MoveNext(); 
    }while(Rs1.EOF==false); 
    Rs1.Close(); 
    return result;
}

用的时候,项目里面要添加ADO 2.7的引用(我认为2.6或者2.5也肯定是可以的),其他什么配置都不需要。不需要改动access文件的users and groups permission,也不需要做asp.net上面的impersonate。运行结果是这样的:

;;MSysAccessObjects;ACCESS TABLE;;;;2002-12-17 1:48:35;2002-12-17 1:48:35;
;;MSysAccessXML;ACCESS TABLE;;;;2004-7-29 16:56:40;2004-7-29 16:56:40;
;;MSysACEs;SYSTEM TABLE;;;;2000-4-6 17:49:34;2000-4-6 17:49:34;
;;MSysObjects;SYSTEM TABLE;;;;2000-4-6 17:49:34;2004-7-29 16:57:18;
;;MSysQueries;SYSTEM TABLE;;;;2000-4-6 17:49:34;2000-4-6 17:49:34;
;;MSysRelationships;SYSTEM TABLE;;;;2000-4-6 17:49:34;2000-4-6 17:49:34;
;;Table_asdfa;TABLE;;;;2004-7-29 16:56:51;2004-7-29 16:56:51;
;;table_lkjlkjlkj;TABLE;;;;2004-7-29 16:56:40;2004-7-29 16:56:40;

这次我是用“access MSysObjects permission select table”为关键字在www.google.com搜索来的(不是groups)。第一页的结果里面有段code就是对的,我只不过从VB的代码改到了C#而已。
------------------------

这也基本是个结局了,虽然后来我还是用了自己的办法
------------------------

mvm 好人做到底,给出了引用ado的操作,再次感谢。偶也终于成功了OLEDB的。原因呢?偶们的proj没用这一类ADO的类,要是添加个引用,就又会有人提出异议,所以我又找找,方法来自msdn。用的System.Data.OleDb,无需添加引用,比较符合我当前的项目。这方法在回给mvm的信中提到,当时出现了奇怪的异常,我没搞定,今天再试,结果好了(Dataset open的问题,msdn异常中解释)......
;(
VB代码如下

Imports System.Data.OleDb

Dim strConn As String _
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/DefaultWeb/Web3/db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password="
Dim conn As System.Data.OleDb.OleDbConnection _
= New System.Data.OleDb.OleDbConnection(strConn)
conn.Open()
Dim schemaTable As DataTable _
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
Dim DR As DataRow
Dim strOutput As String
Dim i As Integer
For Each DR In schemaTable.Rows
For i = 0 To schemaTable.Columns.Count - 1
strOutput = strOutput & schemaTable.Columns(i).ColumnName & "=" & DR(i) & ","
Next
System.Diagnostics.Debug.WriteLine(strOutput)
strOutput = ""
Next
conn.Close()

output as follows:
TABLE_CATALOG=,TABLE_SCHEMA=,TABLE_NAME=telelist,
TABLE_TYPE=TABLE,TABLE_GUID=,DESCRIPTION=,
TABLE_PROPID=,DATE_CREATED=2003-10-14 18:11:20,
DATE_MODIFIED=2003-10-14 18:37:07,

------------------------

相信大家对于优快云或者其他地方的高手,也许新手,也有可能遇到这种情形,双方都应该静心思量一下。我就是抱着交个朋友的心情,被示众的。心情沉重呀。博客堂是我常常去的地方,mvm和我本在一个城市,希望在这次误会之后,不要给大家心里面留下不快。
BTW 还是要感谢来自博客堂的人们。只是不幸当了典型...一个老典型:(

供应链协调主管(能源/化工)​我真的适合该岗位吗,从八字五行,调候、格局、神煞各方面分析 好的,我现在需要帮用户分析他的八字报告。首先,我要仔细阅读用户提供的八字信息,确保自己理解每个部分。用户的八字是庚辰、戊子、庚申、乙酉,日主是庚金,属龙,男性。根据基础命理规则,我需要先确定他的五行强弱和用神情况。 首先看日主庚金,生于子月,子月水旺,但冬季金处于死地。不过,地支有申酉辰,都是金土的支持,尤其是日支申为临官,时支酉为帝旺,金的力量应该很强。天干透出庚金比肩和戊土偏印,还有乙木正财。看起来金很旺,土也有生扶,水在月支,木在时干,火则完全没有出现。 接下来分析调候用神,八字中提到调候用神是丙、丁、甲。冬天出生需要火来暖局,但原局无火透干,只有地支藏干中有丙火(比如月支子水藏癸,但子月水旺火弱)。所以调候方面可能不足,需要大运或流年补火。 然后看财星,正财在时干乙木和年支辰中藏乙木。但木的力量较弱,因为乙木坐酉金被克,辰中的乙木也被辰土中的戊土克制。所以财星不算强,可能需要生扶。 接下来分析十神关系。日主庚金身强,喜用神应该是克泄耗,即火、木、水。但原局火弱,所以可能喜木来生火,或者水来泄金。不过水在月令已经很强,形成金生水,水又生木的流通。但需要防止水多金沉,木被冲克。 大运方面,用户目前可能在庚寅大运(2013-2022)或刚进入辛卯大运(2023-2032)。当前时间2025年,可能是在辛卯大运中,劫财透干,地支卯木为正财,但卯酉冲,可能带来财运波动。需要结合流年来看,2025乙巳年,乙木正财透出,地支巳火为七杀,可能有机会但也有压力。 用户可能关心事业或财运,因为时干正财,日主强,适合求财。但原局财星弱,需要大运流年扶持。接下来是壬辰大运(2033-2042),食神透出,地支辰土,可能利于才华发挥,但辰为印,可能增加土的力量,需注意土多埋金。 夫妻宫为申金,比肩坐临官,可能配偶个性强,但申子辰合水,配偶宫被合,可能婚姻较稳定,但需注意比劫夺财的情况。子女宫在时柱,酉金劫财,子女星为火,原局无火,可能子女缘较晚,需火运来助。 神煞方面,时柱有桃花,可能有异性缘,但劫财坐桃花,需防感情纠纷。日柱禄神,主自立自强,但四废可能带来精力不足的情况。 总结来说,用户八字金旺,需要火来调候,木来生火,水来流通。大运目前走辛卯,劫财克财,需谨慎理财。未来壬辰运食神生财,可能财运提升。建议从事与木火相关的行业,如教育、文化、科技等,同时注意身体健康,特别是金旺可能影响的呼吸系统。 ### 八字命理分析报告 #### 一、五行格局解析 • **日主庚金**:生于子月(冬水旺),地支申酉辰三合金局,天干双庚透出,金气极旺,属**身强**格局。 • **调候用神**:冬寒需火暖局,原局无火透干,调候不足。需大运或流年补丙、丁火(尤其丙火为太阳火最佳)。 • **五行流通**:金生水(月令子水),水生木(时干乙木),木弱需土培(戊土偏印透月干)。但土金过旺,木根浅(乙木坐酉金被克),需加强木火之力平衡。 --- #### 二、十神与六亲 1. **财星(木)**: • 正财乙木透时干,但坐酉金劫财被克,财根弱(仅辰中藏乙木)。 • 求财需借水木运(如壬辰、甲午大运),宜从事文化、贸易、技术类行业。 2. **妻缘**: • 正财透时干,晚婚为宜(33岁后日柱运)。 • 夫妻宫申金为比肩,配偶性格刚强,申子辰合水局,婚姻稳定性较高,但需防比劫夺财(如辛卯大运)。 3. **父母**: • 年柱庚辰,偏印戊土透月干,母缘较深,但原局无正印(母星不显),可能母亲身体偏弱或缘分较淡。 • 偏财父星不现,与父亲缘分较浅,或父亲能力受制。 --- #### 三、大运走势与建议 • **当前大运(2023-2032 辛卯)**: • **劫财透干**:辛金克乙木正财,易有竞争破财,需谨慎投资。 • **卯酉冲**:冲时支桃花,感情波动,宜稳守婚姻;冲财星根基,需防合作纠纷。 • **建议**:稳中求进,可借流年火木(如2025乙巳、2026丙午)提升财运。 • **下一步大运(2033-2042 壬辰)**: • **食神生财**:壬水泄金生乙木,才华变现机会增多,适合创意、技术领域。 • **辰土印星**:学习运佳,可提升专业技能,但需防土重埋金(思虑过重)。 • **关键流年**: • **2025乙巳**:乙木正财透干,巳火暖局(丙火藏),利事业突破,但巳申合水局,需防合作变动。 • **2026丙午**:丙火调候到位,午火冲子水(月令),事业有升迁机遇,但子午冲需注意健康。 --- #### 四、神煞与健康 • **神煞**: • 时柱桃花+羊刃:异性缘佳,但防感情纠纷。 • 日柱禄神+四废:精力易波动,需规律作息。 • **健康**: • 金旺木弱,注意肝胆、筋骨问题。 • 子月水寒,中年后(48岁后)防肾水系统。 --- #### 五、总结建议 1. **事业**:宜木火行业(教育、文化、能源),2033年后可大胆创新。 2. **财运**:稳守正财,避免高风险投资,2026年后财运转旺。 3. **感情**:晚婚更利,配偶宜选火旺(属马、蛇)或木旺(属虎、兔)之人。 4. **调理**:多穿绿色、红色衣物,佩戴木质饰品(如檀香),居所增加绿植。 **命理如棋局,顺势而为可化吉。** 🌟
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值