贤人必须成人,成人才能达己.

共同进步

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  49 随笔 :: 1 文章 :: 10 评论 :: 0 引用

2008年9月10日 #

 private void InitGroupBox()
        {
            for (int k = 0; k < 16;k++ )
            {
                PictureBox pic = new PictureBox();
                int i = k % 4;
                int j = k / 4;
                pic.Name = k.ToString();
                pic.Top = 50 + j * 201;
                pic.Left = 50+i * 251;
                pic.Width = 250;
                pic.Height = 200;
                //pic.Visible = true;
                pic.Click  += new EventHandler(PictureBox_Click);
                pic.Paint += new PaintEventHandler(pictureBox_Paint);
                pic.BorderStyle = BorderStyle.FixedSingle;
                this.GroupPanel.Controls.Add(pic);
            }
        }
        private void PictureBox_Click(object sender, EventArgs e)
        {
            PictureBox p = (PictureBox)sender;
            if (p == old) return;

            if (old != null)
            {
                old.Width -= 10;
                old.Height -= 10;
                old.Location = new Point(old.Location.X + 5, old.Location.Y + 5);
            }

            old = p;
            p.Width += 10;
            p.Height += 10;
            p.Location = new Point(p.Location.X - 5, p.Location.Y - 5);
            p.BringToFront(); 
          
        }
        private void pictureBox_Paint(object sender, PaintEventArgs e)
        {
            PictureBox p = (PictureBox)sender;
            if (p == old)
            {
                Pen pp = new Pen(Color.Red);
                e.Graphics.DrawRectangle(pp, e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.X + e.ClipRectangle.Width - 1, e.ClipRectangle.Y + e.ClipRectangle.Height - 1);
            }
        } 

posted @ 2008-09-10 10:09 adi 阅读(200) 评论(0) 编辑

private void addChildren(string GroupName)
        {
            //首先判断是否选定组件中节点的位置
            if (this.groupTreeView.SelectedNode == null)
            {
                MessageBox.Show("请选择一个节点", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (GroupName != "")
                {
                    //创建一个节点对象,并初始化
                    TreeNode tmp;

                    tmp = new TreeNode(GroupName);
                    tmp.Name = "02";
                    tmp.Tag = "02";
                    //在treeview组件中加入兄弟节点
                    this.groupTreeView.SelectedNode.Nodes.Add(tmp);
                    this.groupTreeView.SelectedNode  = tmp;
                    this.groupTreeView.ExpandAll();
                }
                else
                {
                    MessageBox.Show("textbox组件必须填入节点名称!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            //treenode tnode = new treenode ( textbox1.text ) ;
        }

 //删除节点
        private void delNode()
        {
        
            //删除节点
            try
            {
                if (MessageBox.Show("确认删除该节点吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                {
                    this.groupTreeView.SelectedNode.Remove();

                }
                TreeView2Xml.Save(this.groupTreeView);
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }

 private void addparent (string GroupName)
       {
        //首先判断是否选定组件中节点的位置
            if ( this.groupTreeView .SelectedNode  == null )
            {
                MessageBox.Show  ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information  ) ;
            }
            else
            {
                if (GroupName != "")
                {
                    //创建一个节点对象,并初始化
                    TreeNode tmp;

                    tmp = new TreeNode(GroupName);
                    tmp.Name = "01";
                    tmp.Tag = "01";
                    //在treeview组件中加入兄弟节点
                    this.groupTreeView.Nodes.Add (tmp);
                    this.groupTreeView .ExpandAll ();
                }
                else
                {
                    MessageBox.Show ("textbox组件必须填入节点名称!", "提示信息", MessageBoxButtons.OK , MessageBoxIcon.Information );
                    return ;
                }
            }
            //treenode tnode = new treenode ( textbox1.text ) ;
        }

posted @ 2008-09-10 10:07 adi 阅读(37) 评论(0) 编辑

class TreeView2Xml
    {
        private const string _SubFolder = "Xml";
        private const string _DecodeConfigName = "TreeView.xml";

        public static void Save(TreeView tv  )
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml("<Menu></Menu>");
                XmlNode root = doc.DocumentElement;
                doc.InsertBefore(doc.CreateXmlDeclaration("1.0", "utf-8", "yes"), root);
                TreeNode2Xml(tv.Nodes, root);
                doc.Save(CommonString.BuildFullPathName(_SubFolder, _DecodeConfigName));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static void TreeNode2Xml(TreeNodeCollection treeNodes, XmlNode xmlNode)
        {
            XmlDocument doc = xmlNode.OwnerDocument;
            foreach (TreeNode treeNode in treeNodes)
            {
                XmlNode element = doc.CreateNode("element", "Item", "");
                XmlAttribute attr = doc.CreateAttribute("Title");
                attr.Value = treeNode.Text;
                element.Attributes.Append(attr);
                attr = doc.CreateAttribute("id");
                attr.Value = treeNode.Name;
                element.Attributes.Append(attr);
                //element.AppendChild(doc.CreateCDataSection(treeNode.Tag.ToString()));
                xmlNode.AppendChild(element);

                if (treeNode.Nodes.Count > 0)
                {
                    TreeNode2Xml(treeNode.Nodes, element);
                }
            }
        }
        public static void Read(TreeView tv)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(CommonString.BuildFullPathName(_SubFolder, _DecodeConfigName));

                XmlNodeList xmlNodes = xmlDoc.DocumentElement.ChildNodes;

                tv.BeginUpdate();
                tv.Nodes.Clear();
                XmlNode2TreeNode(xmlNodes, tv.Nodes);
                tv.EndUpdate();
            }
            catch(Exception e)
            {
                throw e;
            }
        }
        public static void XmlNode2TreeNode(XmlNodeList xmlNode, TreeNodeCollection treeNode)
        {
            foreach (XmlNode var in xmlNode)
            {
                if (var.NodeType != XmlNodeType.Element)
                {
                    continue;
                }
                TreeNode newTreeNode = new TreeNode();
                newTreeNode.Text = var.Attributes["Title"].Value;
                newTreeNode.Name = var.Attributes["id"].Value;
                if (var.HasChildNodes)
                {
                    //if (var.ChildNodes[0].NodeType == XmlNodeType.CDATA)
                    //{
                    //    newTreeNode.Tag = var.ChildNodes[0].Value;
                    //}

                    XmlNode2TreeNode(var.ChildNodes, newTreeNode.Nodes);
                }
                treeNode.Add(newTreeNode);
            }
        }
    }
   

posted @ 2008-09-10 10:06 adi 阅读(39) 评论(0) 编辑

2008年7月19日 #

xml节点删除修改
已知有一个XML文件(bookstore.xml)如下:
<?xml version=”1.0″ encoding=”gb2312″?>
<bookstore>
<book genre=”fantasy” ISBN=”2-3631-4″>
<title>Oberon’s Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>


1、往<bookstore>节点中插入一个<book>节点:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load(”bookstore.xml”);
XmlNode root=xmlDoc.SelectSingleNode(”bookstore”);//查找<bookstore>
XmlElement xe1=xmlDoc.CreateElement(”book”);//创建一个<book>节点
xe1.SetAttribute(”genre”,”李赞红”);//设置该节点genre属性
xe1.SetAttribute(”ISBN”,”2-3631-4″);//设置该节点ISBN属性


XmlElement xesub1=xmlDoc.CreateElement(”title”);
xesub1.InnerText=”CS从入门到精通”;//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElement xesub2=xmlDoc.CreateElement(”author”);
xesub2.InnerText=”候捷”;
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement(”price”);
xesub3.InnerText=”58.3″;
xe1.AppendChild(xesub3);


root.AppendChild(xe1);//添加到<bookstore>节点中
xmlDoc.Save(”bookstore.xml”);
//===============================================
结果为:
<?xml version=”1.0″ encoding=”gb2312″?>
<bookstore>
<book genre=”fantasy” ISBN=”2-3631-4″>
<title>Oberon’s Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre=”李赞红” ISBN=”2-3631-4″>
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore>


2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode(”bookstore”).ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute(”genre”)==”李赞红”)//如果genre属性值为“李赞红”
{
xe.SetAttribute(”genre”,”update李赞红”);//则修改该属性为“update李赞红”


XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name==”author”)//如果找到
{
xe2.InnerText=”亚胜”;//则修改
break;//找到退出来就可以了
}
}
break;
}
}


xmlDoc.Save(”bookstore.xml”);//保存。
//==================================================
最后结果为:
<?xml version=”1.0″ encoding=”gb2312″?>
<bookstore>
<book genre=”fantasy” ISBN=”2-3631-4″>
<title>Oberon’s Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre=”update李赞红” ISBN=”2-3631-4″>
<title>CS从入门到精通</title>
<author>亚胜</author>
<price>58.3</price>
</book>
</bookstore>


3、删除 <book genre=”fantasy” ISBN=”2-3631-4″>节点的genre属性,删除 <book genre=”update李赞红” ISBN=”2-3631-4″>节点。
XmlNodeList xnl=xmlDoc.SelectSingleNode(”bookstore”).ChildNodes;


foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute(”genre”)==”fantasy”)
{
xe.RemoveAttribute(”genre”);//删除genre属性
}
else if(xe.GetAttribute(”genre”)==”update李赞红”)
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save(”bookstore.xml”);
//===========================================
最后结果为:
<?xml version=”1.0″ encoding=”gb2312″?>
<bookstore>
<book ISBN=”2-3631-4″>
<title>Oberon’s Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>


4、显示所有数据。
XmlNode xn=xmlDoc.SelectSingleNode(”bookstore”);


XmlNodeList xnl=xn.ChildNodes;


foreach(XmlNode xnf in xnl)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute(”genre”));//显示属性值
Console.WriteLine(xe.GetAttribute(”ISBN”));


XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
}
5、删除节点
string xmlPath = Server.MapPath("bookstore.xml");
XmlDocument xmlDoc=new XmlDocument();
// 加载指定的XML数据
xmlDoc.Load(xmlPath);
// 选择匹配 XPath 表达式的第一个 XmlNode
XmlNode root = xmlDoc.SelectSingleNode("bookstore");
// 获取节点的所有子节点
XmlNodeList xnList=root.ChildNodes;
bool isFinded=false;
foreach(XmlNode xn in xnList)
{
if(xn.SelectSingleNode("Title").InnerText==“CS从入门到精通”)
{
isFinded=true;
root.RemoveChild(xn);// 移除指定的子节点
xmlDoc.Save(xmlPath);
break;
}
}
// 显示结果
if (isFinded)
{
Response.Write("已删除");
}
else
{
Response.Write("未找到相应的记录");
}

posted @ 2008-07-19 16:42 adi 阅读(211) 评论(0) 编辑

2008年7月18日 #

父窗口弹出子窗口的 button处理事件:

       private void butDeta_Click(object sender, System.EventArgs e)
        {
            Response.Write("<script>window.open('CangkuDetaList.aspx?strMateNo="+ txtMateNo.Text +"&strWaretype="+ ddlWareType.SelectedValue +"','new1','width=750,height=400,toolbar=0,scrollbars=2,top=200,left=200');</script>");
        }
or

 protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("<script>window.open('Popup.aspx','_blank','height=450,width=470,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');</script>");
    }

父窗口html代码添加如下javascript代码:
function refresh()
{
    this.location = this.location;
}
子窗口关闭窗口的 button处理事件:
        private void imgbtnBack_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            Response.Write("<script>window.opener.refresh();window.opener=null;window.close();</script>");       
        }



posted @ 2008-07-18 20:10 adi 阅读(1304) 评论(0) 编辑

 
今天碰到一个弹出对话框(PopUp dialog)的问题, 因该是个傻瓜问题, 但是还是让我研究了半天, 总结了一些前人经验, 拿出来跟大家分享一下!

ASP.Net页面之间的传值方法有很多,但是打开和关闭新的窗口,靠的还是JavaScript 下的 Windows对象譬如打开窗口open(<URL字符串>, <窗口名称字符串>, <参数字符串>);

<URL字符串>:描述所打开的窗口打开哪一个网页。如果留空(''),则不打开任意网页。
<
窗口名称字符串>:描述被打开的窗口的名称(window.name),可以使用'_top''_blank'等内建名称。这里的名称跟“<a href="..." target="...">”里的“target”属性是一样的。
<
参数字符串>:描述被打开的窗口的样貌。如果只需要打开一个普通窗口,该字符串留空(''),如果要指定样貌,就在字符串里写上一到多个参数,参数之间用逗号隔开。

有些参数还是要知道的

top=#

窗口顶部离开屏幕顶部的像素数

left=#

窗口左端离开屏幕左端的像素数

width=#

窗口的宽度

height=#

窗口的高度

menubar=...

窗口有没有菜单,取值yesno

toolbar=...

窗口有没有工具条,取值yesno

location=...

窗口有没有地址栏,取值yesno

directories=...

窗口有没有连接区,取值yesno

scrollbars=...

窗口有没有滚动条,取值yesno

status=...

窗口有没有状态栏,取值yesno

resizable=...

窗口给不给调整大小,取值yesno

close() 关闭一个已打开的窗口。
window.close()
self.close():关闭本窗口;
<
窗口对象>.close():关闭指定的窗口。
  如果该窗口有状态栏,调用该方法后浏览器会警告:网页正在试图关闭窗口,是否关闭?然后等待用户选择是否;如果没有状态栏,调用该方法将直接关闭窗口。

至于opener他应该是window的属性而非方法

 用法:window.opener;返回打开本窗口的窗口对象。注意:返回的是一个窗口对象。如果窗口不是由其他窗口打开的,在 Netscape 中这个属性返回 null;在 IE 中返回未定义undefined)。undefined 在一定程度上等于 null。注意:undefined 不是 JavaScript 常数,如果你企图使用“undefined”,那就真的返回未定义了。

在这里就有个问题了,怎们后面说….(卖个关子)

OK, 窗口现在是打开了, 接下来我们想要做什么

, 在新的页面上得到一个或多个值, 之后传递下去?

这种情况下,JavaScript就不是唯一的最佳选择了, 虽然在传统的ASP当中form Post是上加之选,但在ASP.NET中就显得有些老土了,并且实现起来有些麻烦! ASP.NET为我们提供了多种方式,

QueryString,  Session,  Server.Transfer,  Cache,  ViewState

一种是可以通过用来传送相应的值,再一种是通过变量来传送相应的值,还有就是通过方法来实现。下面分别一一介绍:   

1. Querystring  (较古老)

Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。还有就是URL需要自行设计,容易出错. 不过如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法还是可取的。

简单的例子就是在父级页面中
 string  url; 
 url="webform2.aspx?name="  +   
   TextBox1.Text  +  "&email="  +   
   TextBox2.Text; 
 Response.Redirect(url); 

在第二个页面的page_load中加入

 Label1.Text=Request.QueryString["name"]; 
 Label2.Text=Request.QueryString["email"]; 
运行,即可看到传递后的结果了。 

2. Session 
 
使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。不过问题是,两个页面之间最好还是使用局部变量。否则可能会有项目组中Session命名冲突的问题。再就是记得用完后remove.

简单的例子就是在父级页面中加入
Session["name"]=TextBox1.Text; 
 Session["email"]=TextBox2.Text; 
 Response.Redirect("webform2.aspx"); 
在第二个页面的page_load中加入

 Label1.Text=Session["name"].ToString(); 
 Label2.Text=Session["email"].ToString(); 
 Session.Remove("name"); 
 Session.Remove("email"); 
运行,即可看到传递后的结果了。 

3. Server.Transfer 
虽然这种方法有点复杂,但也不失为一种在页面传值的方式。Server.Transfer的方法居然有很多人说好,这种方法要求被调用的页面去引用调用的页面,这种方法明显违反编程的原则。原来被调用的页面可以独立使用,可以被其他页面调用,用了这种方法就不行了!没有深度研究, 就不显摆了

4. Cache
ASP.NET页面和ASP.NET用户控件(动态装入)之间传递数据时.ASP.NET页面中装入用户控件的时候
Cache[“Test“] =“Test“
在用户控件的Page_Load方法中:
Label1.Text  = Page.Page.Cache[“Test“].ToString;
Label1
应该显示为“Test”

5. ViewState
ViewState
适用在一个页面中保存状态,要在两个页面之间使用似乎也不行。(没有深度研究)

, 在新的页面上得到一个或多个值后,传回父级页面?

这个问题在我看来,JavaScript是个不二之选,

在父级页面中

<head runat="server">中添加

<script type='text/javascript'>

function openWindow()  

 {  

window.open('Popup.aspx','_blank','height=450,width=470,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');

}

</script>

<form id="form1" runat="server">中添加

<div>

   <asp:TextBox ID="TB_subject" runat="server"></asp:TextBox>

   <asp:TextBox ID="TB_Infor" runat="server"></asp:TextBox>

   <p>

   <input type="button" value="传值并返回父窗口" name="button1" onclick="popup()" /></p>

</div>

当然也可以写在code,写法如下

Dim PopUpDialog As String

        PopUpDialog = "<script type='text/javascript'>window.open('Popup.aspx','_blank','height=450,width=470,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');</script>"

        ScriptManager.RegisterStartupScript(Me, Me.GetType, "key", PopUpDialog, False)

PopUp页面当中

<head runat="server">中添加

 <script type="text/javascript">

 function popup()  

 {  

      window.opener.document.getElementById("TB_subject").value=document.getElementById("TB_Name").value;

      window.opener.document.getElementById("TB_Info").value=document.getElementById("TB_Summary").value; 

      window.close()    

     }

</script>

<form id="form1" runat="server">中添加

<div>

   <asp:TextBox ID="TB_Name" runat="server"></asp:TextBox>

   <asp:TextBox ID="TB_Summary" runat="server"></asp:TextBox>

   <p>

   <input type="button" value="传值并返回父窗口" name="button1" onclick="popup()" /></p>

</div>

之后在触发对象(input,button etc…)上添加onclick="popup()" 事件即可, 当然在ASP.NET中如果应用了VBC#Code这句话应当改为OnClientClick="popup()".

好了解释一下前面卖的关子,这里需要注意几个问题,

1.        window.opener.document.getElementById("TB_Name").value这句话虽然可以用window.opener.document.all["TB_Name"].value代替,但是它只对IE有效,firefox中或其他浏览器是没有结果的,因为事实上document没有all这个方法getElementByIdgetElementByName才是正解.

2.        如果使用了ASP.NET 2.0 AJAX, 并且把xhtml tag对象写入Code的时候,记得用ScriptManager.RegisterStartupScript(Me, Me.GetType, "key", PopUpDialog, False) 替代Response.Write(script); 因为在ScriptManager控件里不支持Response.Write()

posted @ 2008-07-18 15:12 adi 阅读(1106) 评论(1) 编辑

2008年6月22日 #

今天在连接Oracle的时候碰到一个问题,我的机器装的是Oracle9.2客户端,当在asp.net应用中使用数据访问的组件(调用System.Data.OracleClient)时,程序报“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误,无法创建OracleConnection,但在同一台机器上用winfom客户端又能够正常访问到数据库。更加奇怪的是,我把应用部署到一台安装了Oracle 8.17客户端的机器上时,却能够正常运行。
        找了半天 ,终于搞清楚了原因。原来当Oracle 9.2运行在NTFS的分区上时,对于某些非administrator组的用户,ORACLE_HOME 目录是不可见的,而在windows server 2003下asp.net应用使用的帐户是netword service,因此无法创建oracle连接,只要重设一下ORACLE_HOME目录的权限就可以了。步骤如下:
1、以管理员的用户登录;
2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3、重新启动计算机,让权限设置生效(请注意,这一步很重要);
4、登录后运行asp.net应用,正常取得Oracle数据库的数据。
posted @ 2008-06-22 18:50 adi 阅读(100) 评论(0) 编辑

 今天,从上周就捆饶我的问题终于在下班前被我搞定!小得意了一下.
    我的电脑上之前安装了Oracle 10g database,配置完变量用PL/SQL操作一切OK .当又安装完Oracle 10g client后,问题出现了,用PL/SQL登陆时反复提示:ORA-12154: TNS: could not resolve the connect identifier specified
    对于初学者,我反复的在"Oracle - OraDb10g_home3"下的"配置和移植工具"中的"Net Manager"中查找问题所在.请教高手,也没有召见问题的原因.我郁闷了,随后自己决定来搞定这个问题.
    我做了大量的反复的资料查看和自我检查,灵感在下班的时候出现,我突然意识到我的"环境变量"一直被忽视.
打开后我发现我当前的环境变量这样设置的:
path  ==  E:\oraclient_2;E:\oracle\oradata\bin;E:\oracle\bin;E:\Program Files\Java\jdk1.5.0_04\bin;E:\Tomcat5028\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
问题出现了.随后我该成如下:
path  ==  E:\oracle;E:\oracle\oradata\bin;E:\oracle\bin;E:\Program Files\Java\jdk1.5.0_04\bin;E:\Tomcat5028\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

OK !!! 问题在最后的关头被我解决了!!!不错.
这就是: "不抛弃 不放弃"
posted @ 2008-06-22 14:30 adi 阅读(4322) 评论(5) 编辑

2008年6月19日 #


declare @id nvarchar(20)  --定义变量来保存ID号
declare @A float                  --定义变量来保存值
declare mycursor cursor for select * from tb_c   --为所获得的数据集指定游标
open mycursor                   --打开游标
fetch next from mycursor  into @id,@A   --开始抓第一条数据
while(@@fetch_status=0)     --如果数据集里一直有数据
begin
 select tb_b.name,(tb_b.gz + @A) from tb_b where tb_b.id = @id   --开始做想做的事(什么更新呀,删除呀)
        fetch next from mycursor into @id,@A     --跳到下一条数据
end
close mycursor        --关闭游标
deallocate mycursor  --删除游标

本文来源于Woody的鸟窝(Woody's Blog) http://www.smartgz.com, 原文地址:http://www.smartgz.com/blog/Article/976.asp

posted @ 2008-06-19 20:43 adi 阅读(660) 评论(0) 编辑

2008年6月18日 #

摘要: select c0,sum(c1) as c1,sum(c2) as c2 from (select c0,sum(c1) as c1,0 as c2 from t1 group by c0union select c0,0 as c1 ,sum(c2) as c2 from t1 group by c0) c group by c0阅读全文
posted @ 2008-06-18 16:17 adi 阅读(49) 评论(0) 编辑