比方说第一次Fill这个表的Count大小是10 如果第二次Fill后,count会变成0
Fill方法不是追加吗? 

解决方案 »

  1.   

    什么意思,强DataSet的表在Fill之前,是先清空,然后把内容再添加进去吗?
      

  2.   


    sql语句会有什么问题呢能不能说的明白些呢
      

  3.   

    你执行语句后返回结果为0 Fill dataset后里边的表就给清空了
      

  4.   

    肯定和fill无关,检查语句,最好贴出来。
      

  5.   


            private MyDataSet ds = new MyDataSet();
            MyDataSetTableAdapters.UsersTableAdapter daUsers = new MyDataSetTableAdapters.UsersTableAdapter();
            MyDataSetTableAdapters.MessagesTableAdapter da = new MyDataSetTableAdapters.MessagesTableAdapter();
            private bool ReadMeassage()
            {
                bool result = false;
                int row = 0;
                try
                {
                    row = da.Fill(ds.Messages, UserHelper.ID);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                if (row > 0)
                {
                    result = true;
                }
                return result;
            }
      

  6.   

    有些地方我也忘了干什么用的了。先写这么多注释using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Aptech.UI;
    using System.Data.SqlClient;namespace My
    {
        public partial class MainForm : Form
        {
            private MyDataSet ds = new MyDataSet();
            private Dictionary<int, IndexFace> sbFriendsIndex;
            MyDataSetTableAdapters.UsersTableAdapter daUsers = new MyDataSetTableAdapters.UsersTableAdapter();
            MyDataSetTableAdapters.MessagesTableAdapter da = new MyDataSetTableAdapters.MessagesTableAdapter();        public MainForm(LoginForm loginForm)
            {
                InitializeComponent();
            }        //返回好友Table
            public DataTable GetFriends
            {
                get
                {
                    return (DataTable)ds.Users;
                }
            }        //窗体加载事件:生成:好友Table 、 消息Table 加载:好友列表
            private void MainForm_Load(object sender, EventArgs e)
            {         
                sbFriends.AddGroup("我的好友");
                sbFriends.AddGroup("陌生人");            UpdateFriendList();
            }        //启动搜索好友窗口
            private void tsbtnSearch_Click(object sender, EventArgs e)
            {
                SearchFriendForm.GetInstance(this).Show();
            }        public void UpdateFriendList()
            {
                tmrMessage.Stop();
       //         MyDataSetTableAdapters.UsersTableAdapter daUsers;
           //     daUsers = new MyDataSetTableAdapters.UsersTableAdapter();
                try
                {
                    daUsers.Fill(ds.Users, UserHelper.ID);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }            Temp();
                tmrMessage.Start();
            }        //添加陌生人
            private void AddStranger(int strangerID)
            {
                DBHelper db = new DBHelper();
                string sql = "EXEC GetStrangerInfo " + strangerID;
                SqlCommand cmd = db.getStringCommand(sql);          
                try
                {
                    MyDataSet.UsersRow row = ds.Users.NewUsersRow();
                    row.ID = strangerID;
                    row.Stranger = 1;
                    SqlDataReader dr = db.ExecuteReader(cmd);
                    dr.Read();
                    row.NickName = dr.GetString(0);
                    row.FaceId = dr.GetInt32(1);
                    dr.Close();
                    ds.Users.AddUsersRow(row);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    db.Close();
                }
            }        private void Temp()
            {
                SbItem item, strangerItem;
                sbFriendsIndex = new Dictionary<int, IndexFace>();
                string sortState = "State DESC";
                int i = 0, j = 0;
                sbFriends.Groups[0].Items.Clear();
                sbFriends.Groups[1].Items.Clear();
                foreach (MyDataSet.UsersRow row in ds.Users.Select("1 = 1", sortState))
                {
                    if (row.Stranger == 0)
                    {
                        item = new SbItem(row.NickName, row.FaceId);
                        item.Tag = row.ID;
                        sbFriendsIndex.Add(row.ID, new IndexFace(i++, row.FaceId, 0));
                        sbFriends.Groups[0].Items.Add(item);
                    }
                    else
                    {
                        strangerItem = new SbItem(row.NickName, row.FaceId);
                        strangerItem.Tag = row.ID;
                        sbFriendsIndex.Add(row.ID, new IndexFace(j++, row.FaceId, 1));
                        sbFriends.Groups[1].Items.Add(strangerItem);
                    }
                }     
            }        private bool ReadMeassage()
            {
                bool result = false;
                int row = 0;
          //      MyDataSetTableAdapters.MessagesTableAdapter da;
          //      da = new My.MyDataSetTableAdapters.MessagesTableAdapter();
                try
                {
                    row = da.Fill(ds.Messages, UserHelper.ID);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                if (row > 0)
                {
                    result = true;
                }
                return result;
            }        List<int> list = new List<int>();
            bool boolCue = false;
            private void tmrMessage_Tick(object sender, EventArgs e)
            {
                MessageBox.Show(ds.Messages.Rows.Count.ToString());
                if (ReadMeassage())                                                                         //判断是有否有新消息
                {
                    tmrCue.Stop();
                    tmrUser.Stop();
                    foreach (MyDataSet.MessagesRow row in ds.Messages.Rows)                                                  //循环消息
                    {
                        if (row.MessageTypeId == 1 && row.State == 0)                                                       //判断消息类型为聊天信息
                        {
                            MyDataSet.UsersRow rowUser = ds.Users.FindByID(row.FromUserId);
                            if (rowUser == null)                                                            //陌生人分组中不存在这个ID                                   
                            {
                                AddStranger(row.FromUserId);
                                rowUser = ds.Users.FindByID(row.FromUserId);                  
                            }
                            if (rowUser.State == 1)
                                continue;
                            if (!list.Contains(row.FromUserId))                                             //将好友添加到头像闪动列表中
                                list.Add(row.FromUserId);                                                       
                            if (rowUser.State == 0)
                                rowUser.State = 2;
                        }
                        else
                        {
                            if (!boolCue)
                            {
                                boolCue = true;
                            }
                        }
                    }
                    Temp();
                    if (list.Count > 0)
                    {
                        tmrUser.Start();
                    }
                    if (boolCue)
                    {
                        tmrCue.Start();
                    }
                }
             }        private int cutImageIndex = 0;
            private void tmrCue_Tick(object sender, EventArgs e)
            {
                cutImageIndex = cutImageIndex == 0 ? 1 : 0;
                tsbtnCue.Image = ilCue.Images[cutImageIndex];
            }        private void tmrUser_Tick(object sender, EventArgs e)
            {
                switchImage(list);
            }        private void switchImage(List<int> userList)
            {
                lock (userList)
                {
                    foreach (int fromid in userList)
                    {
                        IndexFace indexFace;
                        if (sbFriendsIndex.TryGetValue(fromid, out indexFace))
                        {
                            if (sbFriends.Groups[indexFace.GroupID].Items[indexFace.Index].ImageIndex < 100)
                            {
                                sbFriends.Groups[indexFace.GroupID].Items[indexFace.Index].ImageIndex = 100;
                            }
                            else
                            {
                                sbFriends.Groups[indexFace.GroupID].Items[indexFace.Index].ImageIndex = indexFace.FaceID;
                            }
                            sbFriends.Invalidate();
                        }
                    }
                }
            }        //退出应用程序
            private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
            {
                Application.Exit();
            }        private void sbFriends_ItemDoubleClick(SbItemEventArgs e)
            {
                int id = (int)e.Item.Tag;
                lock(list)
                {
                    if (list.Contains(id))
                    {
                        MyDataSet.UsersRow row = ds.Users.FindByID(id);
                        row.State = 1;
                        list.Remove(id);
                        Temp();
                        if (list.Count == 0)
                            tmrUser.Stop();
                    }
                }
                string nickName = e.Item.Text;
                int faceID = e.Item.ImageIndex;
                ChatForm.GetInstance(id, ds).Show();
            }
        }
    }
      

  7.   

    我没写过清空DataSet里面Table的代码,我感觉是我建的强类型DataSet有问题,我用图型介面建的,不知道怎么把这个东西的代码发出来?
      

  8.   

    把InitializeComponent()中的代码也发来
      

  9.   

    还有MyDataSet 和MyDataSetTableAdapters
      

  10.   


            private void InitializeComponent()
            {
                this.components = new System.ComponentModel.Container();
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
                this.liFace = new System.Windows.Forms.ImageList(this.components);
                this.toolStrip1 = new System.Windows.Forms.ToolStrip();
                this.tsbtnSearch = new System.Windows.Forms.ToolStripButton();
                this.tsbtnCue = new System.Windows.Forms.ToolStripButton();
                this.sbFriends = new Aptech.UI.SideBar();
                this.tmrCue = new System.Windows.Forms.Timer(this.components);
                this.tmrMessage = new System.Windows.Forms.Timer(this.components);
                this.ilCue = new System.Windows.Forms.ImageList(this.components);
                this.tmrUser = new System.Windows.Forms.Timer(this.components);
                this.toolStrip1.SuspendLayout();
                this.SuspendLayout();
                // 
                // liFace
                // 
                this.liFace.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("liFace.ImageStream")));
                this.liFace.TransparentColor = System.Drawing.Color.Transparent;
                this.liFace.Images.SetKeyName(0, "1.bmp");
                this.liFace.Images.SetKeyName(1, "2.bmp");
                this.liFace.Images.SetKeyName(2, "3.bmp");
                this.liFace.Images.SetKeyName(3, "4.bmp");
                this.liFace.Images.SetKeyName(4, "5.bmp");
                this.liFace.Images.SetKeyName(5, "6.bmp");
                this.liFace.Images.SetKeyName(6, "7.bmp");
                this.liFace.Images.SetKeyName(7, "8.bmp");
                this.liFace.Images.SetKeyName(8, "9.bmp");
                this.liFace.Images.SetKeyName(9, "10.bmp");
                this.liFace.Images.SetKeyName(10, "11.bmp");
                this.liFace.Images.SetKeyName(11, "12.bmp");
                this.liFace.Images.SetKeyName(12, "13.bmp");
                this.liFace.Images.SetKeyName(13, "14.bmp");
                this.liFace.Images.SetKeyName(14, "15.bmp");
                this.liFace.Images.SetKeyName(15, "16.bmp");
                this.liFace.Images.SetKeyName(16, "17.bmp");
                this.liFace.Images.SetKeyName(17, "18.bmp");
                this.liFace.Images.SetKeyName(18, "19.bmp");
                this.liFace.Images.SetKeyName(19, "20.bmp");
                this.liFace.Images.SetKeyName(20, "21.bmp");
                this.liFace.Images.SetKeyName(21, "22.bmp");
                this.liFace.Images.SetKeyName(22, "23.bmp");
                this.liFace.Images.SetKeyName(23, "24.bmp");
                this.liFace.Images.SetKeyName(24, "25.bmp");
                this.liFace.Images.SetKeyName(25, "26.bmp");
                this.liFace.Images.SetKeyName(26, "27.bmp");
                this.liFace.Images.SetKeyName(27, "28.bmp");
                this.liFace.Images.SetKeyName(28, "29.bmp");
                this.liFace.Images.SetKeyName(29, "30.bmp");
                this.liFace.Images.SetKeyName(30, "31.bmp");
                this.liFace.Images.SetKeyName(31, "32.bmp");
                this.liFace.Images.SetKeyName(32, "33.bmp");
                this.liFace.Images.SetKeyName(33, "34.bmp");
                this.liFace.Images.SetKeyName(34, "35.bmp");
                this.liFace.Images.SetKeyName(35, "36.bmp");
                this.liFace.Images.SetKeyName(36, "37.bmp");
                this.liFace.Images.SetKeyName(37, "38.bmp");
                this.liFace.Images.SetKeyName(38, "39.bmp");
                this.liFace.Images.SetKeyName(39, "40.bmp");
                this.liFace.Images.SetKeyName(40, "41.bmp");
                this.liFace.Images.SetKeyName(41, "42.bmp");
                this.liFace.Images.SetKeyName(42, "43.bmp");
                this.liFace.Images.SetKeyName(43, "44.bmp");
                this.liFace.Images.SetKeyName(44, "45.bmp");
                this.liFace.Images.SetKeyName(45, "46.bmp");
                this.liFace.Images.SetKeyName(46, "47.bmp");
                this.liFace.Images.SetKeyName(47, "48.bmp");
                this.liFace.Images.SetKeyName(48, "49.bmp");
                this.liFace.Images.SetKeyName(49, "50.bmp");
                this.liFace.Images.SetKeyName(50, "51.bmp");
                this.liFace.Images.SetKeyName(51, "52.bmp");
                this.liFace.Images.SetKeyName(52, "53.bmp");
                this.liFace.Images.SetKeyName(53, "54.bmp");
                this.liFace.Images.SetKeyName(54, "55.bmp");
                this.liFace.Images.SetKeyName(55, "56.bmp");
                this.liFace.Images.SetKeyName(56, "57.bmp");
                this.liFace.Images.SetKeyName(57, "58.bmp");
                this.liFace.Images.SetKeyName(58, "59.bmp");
                this.liFace.Images.SetKeyName(59, "60.bmp");
                this.liFace.Images.SetKeyName(60, "61.bmp");
                this.liFace.Images.SetKeyName(61, "62.bmp");
                this.liFace.Images.SetKeyName(62, "63.bmp");
                this.liFace.Images.SetKeyName(63, "64.bmp");
                this.liFace.Images.SetKeyName(64, "65.bmp");
                this.liFace.Images.SetKeyName(65, "66.bmp");
                this.liFace.Images.SetKeyName(66, "67.bmp");
                this.liFace.Images.SetKeyName(67, "68.bmp");
                this.liFace.Images.SetKeyName(68, "69.bmp");
                this.liFace.Images.SetKeyName(69, "70.bmp");
                this.liFace.Images.SetKeyName(70, "71.bmp");
                this.liFace.Images.SetKeyName(71, "72.bmp");
                this.liFace.Images.SetKeyName(72, "73.bmp");
                this.liFace.Images.SetKeyName(73, "74.bmp");
                this.liFace.Images.SetKeyName(74, "75.bmp");
                this.liFace.Images.SetKeyName(75, "76.bmp");
                this.liFace.Images.SetKeyName(76, "77.bmp");
                this.liFace.Images.SetKeyName(77, "78.bmp");
                this.liFace.Images.SetKeyName(78, "79.bmp");
                this.liFace.Images.SetKeyName(79, "80.bmp");
                this.liFace.Images.SetKeyName(80, "81.bmp");
                this.liFace.Images.SetKeyName(81, "82.bmp");
                this.liFace.Images.SetKeyName(82, "83.bmp");
                this.liFace.Images.SetKeyName(83, "84.bmp");
                this.liFace.Images.SetKeyName(84, "85.bmp");
                this.liFace.Images.SetKeyName(85, "86.bmp");
                this.liFace.Images.SetKeyName(86, "87.bmp");
                this.liFace.Images.SetKeyName(87, "88.bmp");
                this.liFace.Images.SetKeyName(88, "89.bmp");
                this.liFace.Images.SetKeyName(89, "90.bmp");
                this.liFace.Images.SetKeyName(90, "91.bmp");
                this.liFace.Images.SetKeyName(91, "92.bmp");
                this.liFace.Images.SetKeyName(92, "93.bmp");
                this.liFace.Images.SetKeyName(93, "94.bmp");
                this.liFace.Images.SetKeyName(94, "95.bmp");
                this.liFace.Images.SetKeyName(95, "96.bmp");
                this.liFace.Images.SetKeyName(96, "97.bmp");
                this.liFace.Images.SetKeyName(97, "98.bmp");
                this.liFace.Images.SetKeyName(98, "99.bmp");
                this.liFace.Images.SetKeyName(99, "100.bmp");
                this.liFace.Images.SetKeyName(100, "back.bmp");
                this.liFace.Images.SetKeyName(101, "101.bmp");
                // 
                // toolStrip1
      

  11.   

    既然用了强类型的DataSet就没必要再用传统意义上DataSet,
    MyDataSetTableAdapters.UsersTableAdapter daUsers = new MyDataSetTableAdapters.UsersTableAdapter();
    实例化daUsers后,
    只要通过daUsers调用UsersTableAdapter下的方法返回表即可!!
      

  12.   

    mail.163.com 帐号是 micfreebsd 密码是 123abc 收件箱里面有一个1111的文件,里面是项目代码
      

  13.   

    一个DataSet中不能又相同的表名,否则新的将覆盖旧的