//msgcontent.Text的值是:测试{%test1%},测试2{%test2%},我现在是想把{%%}标记的东西从数据库里查出来,然后把新值替换掉上面{%%}标记的内容,得出msgcontent.Text的新值,这个需要怎么做?
List<string> list = new List<string>();
                foreach (Match match in Regex.Matches(msgcontent.Text, @"{%[^%]*%}"))
                {
                    
                    string select = "select varName from varList";
                    OleDbCommand ocom = BaseClass.GlobalClass.Olecomm(select);
                    OleDbDataReader odr = ocom.ExecuteReader();
                    while (odr.Read())
                    {
                        if (match.Value == odr[0].ToString())
                        {
                            string oleselect = "select varContent from varList where varName='"+match.Value+"'";
                            OleDbCommand mycomm = BaseClass.GlobalClass.Olecomm(oleselect);
                            string sqlstr = mycomm.ExecuteScalar().ToString();
                            SqlCommand sqlcomm = BaseClass.GlobalClass.Sqlcomm(sqlstr);
                     string kkkk = sqlcomm.ExecuteScalar().ToString();       
                        }
                    }
补:{%%}标记是access数据库里面一个表的字段,根据这个字段查到对应的这个表里面另一个存储sql语句的字段,然后根据这个sql语句到SQL数据库里面查询到对应的值,最后将文本框的内容更新

解决方案 »

  1.   

    没看清你的描述是在干什么???__
    _________________________________
    我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。
    http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
      

  2.   

    我已经解决了这个问题,谢谢各位的热心帮助,我的原意是将“测试{%test1%},测试2{%test2%}”的{%test1%}{%test2%}替换成从数据库里读取出来的值。
      

  3.   

    private void button1_Click(object sender, EventArgs e)
            {
                if (txno.Text.Trim() == "")
                {
                    MessageBox.Show(this, "不能为空", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    if (listno.Items.Count > 0)
                    {
                        for (int i = 0; i < listno.Items.Count; i++)
                        {
                            if (txno.Text == listno.Items[i].ToString())
                            {
                                MessageBox.Show(this, "已经存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }                    }
                        listno.Items.Add(txno.Text);
                    }
                    else
                    {
                        listno.Items.Add(txno.Text);
                    }
                }
            }
    请大家帮我看看这个为什么判断不成功,重复的数据还是可以添加
      

  4.   

    我已经解决了这个问题,谢谢各位的热心帮助,我的原意是将“测试{%test1%},测试2{%test2%}”的{%test1%}{%test2%}替换成从数据库里读取出来的值。
    str.replace({%test1%},"数据库值")
    没分了,来抢分哦
      

  5.   


     string sqlstr = "insert into varlist values('"+txvarname.Text.Trim()+"','"+txvarcontent.Text.Trim()+"','"+txvarbz.Text.Trim()+"')";
                try
                {
                    BaseClass.GlobalClass.getOlecom(sqlstr);
                    MessageBox.Show(this, "添加成功", "恭喜", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataBind();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }txvarcontent.text 的值是一句SQL语句select * from test where date='2009-10-1'   
    这样的话会报语法错误,这个需要怎么解决?谢谢?
      

  6.   

    您误会我的意思了,txvarcontent.text="select * from test where date='2009-10-1'"相当于这样
      

  7.   

    txvarcontent.text="select * from test where date='2009-10-1'"
    这条语句没错错是在你
    codestring sqlstr="insert into varlist values('"+txvarname.Text.Trim()+"','"+txvarcontent.Text.Trim()+"','"+txvarbz.Text.Trim()+"')";
    这样之后你的value值值第二个列能那样用吗?
    txvarcontent.text执行过后返回多条信息
      

  8.   

    这样吧,把txvarcontent.text的值写成'2009-10-1',这个只是一个常量的值,这样你应该能明白我要表达的意思吧?现在的问题应该是出在符号处,因为如果值没有那两个'号的话,这个语句就可以执行成功。
      

  9.   

    把你的txvarcontent.text
    .Replace("'","''");