Перемещение с помощью колеса мышки по строкам dataGridView

В Visual Studio 2010 Express в панели свойств dataGridView нет события MouseWheel. Но его можно создать в коде. Вот пример.
Кидаем на форму dataGridView. Где Вам будет угодно, например, в Form_Load, пишем следующее:


dataGridView1.MouseWheel += new MouseEventHandler(dataGridView1_MouseWheel);


Создаем обработчик события — перемещение по строкам с помощью колеса мыши:


        void dataGridView1_MouseWheel(object sender, MouseEventArgs e)
        {
            if (e.Delta < 0) { bindingSource1.MoveNext(); } else bindingSource1.MovePrevious();
        }


bindingSource1 источник данных для Вашей гриды. (смотрите пример)

Все. Удачи!

Присоединение DataSet к dataGridView и bindingNavigator

Многократно встречал на форумах вопрос о привязки вручную DataSet-а к элементам отображения и управления данными, такими как bindingNavigator и dataGridView. Визуально в Visual Studio это сделать можно легко, а вот вручную немножечко сложнее. Кстати, в Visual Studio 2010 Express для нелокальной базы данных визуально это вообще сделать не возможно, среда не поддерживает.

Вот пример кода, надеюсь он будет полезен:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WorkWithDB
{
    public partial class Form1 : Form
    {
        //строка соединения с базой данных
        string connectionString = @"Data Source=ALEXANDER-ПК\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI;";
        //соединение с базой данных
        SqlConnection conn;
        DataSet ds;
        SqlDataAdapter adapter;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //создаем новое соединение с базой данных
            conn = new SqlConnection(connectionString);
            try
            {
                //открываем соединение с базой данных
                conn.Open();
                //создаем новый ДатаАдаптер
                adapter = new SqlDataAdapter("select * from test", conn);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                //создаем новый ДатаСет
                ds = new DataSet();
                //связываем DataSet и таблицу test из базы данных
                adapter.Fill(ds, "test");
                //к элементу формы bindingSource (который мы кинули на форму) привязываем таблицу из DataSet-а 
                bindingSource1.DataSource = ds.Tables[0];
                //привязываем bindingSource к bindingNavigator (который мы кинули на форму)
                bindingNavigator1.BindingSource = bindingSource1;
                //привязываем к нашей гриде (которую мы кинули на форму) наш bindingSource
                dataGridView1.DataSource = bindingSource1;

            }
            catch (Exception exception)
            {
                //перехватываем и выводим исключение
                MessageBox.Show(exception.Message);
            }
            finally
            {
                //закрываем соединение с базой данных
                conn.Close();
            }
        }

        //нажимаем кнопочку фиксации изменений на bindingNavigator (изначально добавив ее)
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.dataGridView1.EndEdit();
            adapter.Update(ds, "test");
        }

        //устанавливаем ячейку в режим редактирования и ввода данных
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.BeginEdit(true);
        }
    }
}

Ошибка определения местоположения по базовым станциям или ошибка мобильного оператора?

Для своего мобильного приложения я использую определение местоположения по базовым станциям (библиотека cellid.dll, C#, Windows Mobile). Результаты определения местоположения попадают в базу на удаленном сервере. Вчера сделал возможность вывода координат на карты Google на своем сайте и вот что заметил:


А вот база данных:



Получается, что я менее чем за одно минуту из Новороссийска перебрался в Можайский район и обратно!

Хорошо если это ошибка в самой библиотеке (ранее не замечал), а если на самом деле телефон периодически посещает роуминг и совершенно по другой цене?

Есть ли мысли по этому поводу?

Ошибка обновление Windows 7 SP1 fatal error c0000034

Ошибка возникает при установки Sp1 на windows7, после перезагрузки машина перестает грузится c ошибкой
Fatal Error C0000034 applying update operation (Update 282 of 103814)

К счастью уже есть решение этой проблемы.

1) При начальной загрузки Windows нажимаем F8 и выбираем «Устранение неполадок компьютера»
2) Запускаем «Командная строка»
3) Запускаем блокнот «notepad.exe»
4) В блокноте «Файл > Открыть» переходим в каталог «C:\Windows\winsxs\» (скорее всего буква диска будет D:)
5) выбираем «Тип файлов» — «Все Файлы»
6) Ищем файл «pending.xml»
7) Поиском «CNTRL+F» ищем «0000000000000000.cdf-ms»
8) Находим и удаляем i54.tinypic.com/adzpzp.png
9) Перезагружаем компьютер, он может попытается доустановить обновления, это нормально.
Ссылка на источник

Ошибка <compilation targetFramework="4.0"> при развертывании ASP.NET приложения

Итак, сделал сайт на ASP.NET в Visual Studio 2010 Express. Развернул на сервере Windows Server 2008 R2, IIS7. Перехожу по адресу сайта в браузере и получаю следующее сообщение сообщение: . Проблема решается следующим образом:

1. In Windows, start Inetmgr.
2. In the Connections pane, expand the server node and then click Application Pools.
3. On the Application Pools page, select the application pool that contains the application that you want to change.
4. In the Actions pane, click View Applications.
5. Select the application whose application pool hat you want to change and then click Change Application Pool in the Actions pane.
6. In the Select Application Pool dialog box, select an application pool that is associated with .NET Framework version 4 from the Application pool list, and then click OK.

Ссылка на MSDN

Определение пути к карте памяти телефона

Писал программу для «Gigabyte GSmart S1205», посмотрел что карта памяти в устройстве выглядит как «Storage Card» и начал использовать это имя в своем коде. Все работало отлично. Решил поставить программу на свой Witu Omnia i900. В нем вообще нет карты памяти, там диск на 16ГБ и называется он «Память телефона». Моя программ продолжала работать, но она создавала папку «Storage Card» в памяти устройства! Привожу код который поможет Вам точно определить название Вашего съемного диска в устройстве.

//########## ########## ########## ########## ########## ########## ########## ########## ##########
            public static readonly IntPtr INVALID_HANDLE_VALUE = (IntPtr)(-1);
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
            public struct WIN32_FIND_DATA
            {
                public int dwFileAttributes;
                public FILETIME ftCreationTime;
                public FILETIME ftLastAccessTime;
                public FILETIME ftLastWriteTime;
                public int nFileSizeHigh;
                public int nFileSizeLow;
                public int dwOID;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
                public string cFileName;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)]
                public string cAlternateFileName;
            }
            [StructLayout(LayoutKind.Sequential)]
            public struct FILETIME
            {
                public int dwLowDateTime;
                public int dwHighDateTime;
            };
            [DllImport("note_prj", EntryPoint = "FindFirstFlashCard")]
            public extern static IntPtr FindFirstFlashCard(ref WIN32_FIND_DATA findData);
            [DllImport("note_prj", EntryPoint = "FindNextFlashCard")]
            [return: MarshalAs(UnmanagedType.Bool)]
            public extern static bool FindNextFlashCard(IntPtr hFlashCard, ref WIN32_FIND_DATA findData);
            [DllImport("coredll")]
            public static extern bool FindClose(IntPtr hFindFile); 
//########## ########## ########## ########## ########## ########## ########## ########## ##########


public static string GetRemovableStorageDirectory()
            {
                string removableStorageDirectory = null;
                WIN32_FIND_DATA findData = new WIN32_FIND_DATA();
                IntPtr handle = IntPtr.Zero;
                handle = FindFirstFlashCard(ref findData);
                if (handle != INVALID_HANDLE_VALUE)
                {
                    do
                    {
                        if (!string.IsNullOrEmpty(findData.cFileName))
                        {
                            removableStorageDirectory = findData.cFileName;
                            break;
                        }
                    }
                    while (FindNextFlashCard(handle, ref findData));
                    FindClose(handle);
                }
                return removableStorageDirectory;
            }


В том месте где Вам надо узнать точное наименование Вашего съемного устройства пишем примерно следующее:

removableDirectory = GetRemovableStorageDirectory();
if (removableDirectory != null)
{
string path = "\\" + removableDirectory + "\\";
}