日期:2014-05-18  浏览次数:20613 次

问题很简单,!!!!寻求一个最佳,效率最高的方案.
页面上有Textbox1,Textbox2,Textbox3

按纽点击后,我需要把这3行Textbox的数据插入到数据库的 对应的字段,cd1,cd2和cd3

如果Textbox1没输入,Textbox2,Textbox3输入了,则把Textbox2和Textbox3插入到cd1,cd2
如果Textbox2没输入,Textbox1,Textbox3输入了,则把Textbox1和Textbox3插入到cd1,cd2
如果Textbox1没输入,只有Textbox2输入了,则把Textbox2插入到cd1
如果Textbox1没输入,只有Textbox3输入了,则把Textbox3插入到cd1

依次类推,说白了就是填补上未输入的.

谢谢,C# ,VB.NET均可以.谢谢!!!

------解决方案--------------------
暂时想不出好的办法,只能一个一个判断了
------解决方案--------------------
使用ArrayList把三个控件的值Add进
然后遍历 是String.Empty的就移除
然后循环向数据库插入

------解决方案--------------------
string cd1 = null, cd2 = null, cd3 = null;
string aa = "|" + TextBox1.Text + "|" + TextBox2.Text + "|" + TextBox3.Text + "|";
aa = aa.Replace("||", "|").Replace("||", "|");
string [] bb = aa.Split ('|');
int n = bb.Length ;
if (n > 1) cd1 = bb[1];
if (n > 2) cd2 = bb[2];
if (n > 3) cd3 = bb[3];
Response.Write("cd1=" + cd1 + "<br/>");
Response.Write("cd2=" + cd2 + "<br/>");
Response.Write("cd3=" + cd3 + "<br/>");

不知道我的本办法可用否!! 大概思路就是这样,我初学 .net 不知道有没有更好的办法




------解决方案--------------------
C# code

        ArrayList arylist = new ArrayList();
        arylist.Add(TextBox1.Text.ToString());
        arylist.Add(TextBox2.Text.ToString());
        arylist.Add(TextBox3.Text.ToString());

        for (int i = arylist.Count - 1; i >= 0; i--)
        {
            if (arylist[i].ToString().Equals(""))
            {
                arylist.Remove(arylist[i]);
            }
        }

        StringBuilder strSql = new StringBuilder();
        strSql.Append("insert into yourtable(");
        for (int i = 0; i < arylist.Count; i++)
        {
            if (i.Equals(arylist.Count - 1))
            {
                strSql.Append(" cd" + i.ToString() + ")");
            }
            else
            {
                strSql.Append(" cd" + i.ToString() + ",");
            }
        }
        strSql.Append(" values(");

        for (int i = 0; i < arylist.Count; i++)
        {

            if (i.Equals(arylist.Count - 1))
            {
                strSql.Append("{'" + i.ToString() + "'})");
            }
            else
            {
                strSql.Append("{'" + i.ToString() + "'},");
            }
        }
        string strQ = string.Format(strSql.ToString(), arylist.ToArray());

------解决方案--------------------
string[] textStrArray=new string[3] {TextBox1.Text ,TextBox2.Text ,TextBox3.Text };
string[] dataFieldArray=new string[3]{"cd1","cd2","cd3"};
string insertString="":
int index=0;
foreach(string tmpStr in textStrArray)
{
if(!string.IsNullOrEmpty(tmpStr))
insertString+= dataFieldArray[index++]+ tmpStr;
}

后面加的那个应该不是太正确的,自己改吧,我自己贪方便,插入语句一定不是这个格式