3 / 3 / 1
Регистрация: 18.12.2014
Сообщений: 74
1
.NET 3.x

C# и ms sql нужно оптимальное решение

18.12.2014, 11:23. Показов 745. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем. у меня такая проблема есть студия экспресс 2008 пакет C# и в локалке ms sql 2005, есть такая задача, мне дали задание написать электронный оперативный журнал 4 клиента и один сервер с БД. ни как не могу определиться на конкретных решениях...сам работаю в WINCC, но начальство решило меня на всё проверить.
и так как лучше сделать авторизация пользователей? в бд две таблицы юзеры и сообщения(ведение журнала ), так вот в юзерах столбцы юзер, пароль, роль(думаю сделать всего две начальника с полным доступом к таблице и нас работников, всё кроме редактирования) так вот а как вы смотрите на то, а если в бд оставить только одну таблицу сообщения, а в приложении сделать авторизацию, например если работник зашол(логин пароль хранить в txt например)то открыть таблицу с одними правами, типо insert update...вот полазил везде, остановился на том что в одной форме я подключаюсь вводя логина и пароля но ни как не проверяю что ввожу при любых значения захожу..и косяк на второй форме тоже прописываю хз зачем подключения и там ввывожу таблицу сообщения..могу код кинуть..м.б кто как то подправит меня куда что и как!надеюсь на вашу помошь.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection();
            SqlCommand comand = new SqlCommand();
            SqlDataAdapter adaptor = new SqlDataAdapter();
            DataSet dataset = new DataSet();
 
            connection.ConnectionString = (@"Data Source=ASUSERVER\WINCC;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=asutp");
            int count = 0;
 
            using (SqlCommand command = new SqlCommand("select * from [user] where user=user and pass=pass", connection))
            {
                command.Parameters.AddWithValue("user", textBox1.Text);
                command.Parameters.AddWithValue("pass", textBox2.Text);
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                        count += 1;
                }
                connection.Close();
            }
            if (count == 0)
            {
 
                MessageBox.Show("Не верный Логин или Пароль!");
                return;
            }
 
 
            this.Hide();
            Form2 Form = new Form2();
            Form.Show();
 
 
        }
 
 
 
    }
}
 
    
                 
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {   
 
        //DataGridView dg;
       // SqlDataAdapter da;
        
        public Form2()
        {}
           // this.Text = "Добро пожаловать в оперативный журнал АСУТПиКИП";
         
       // SqlConnection connection = new SqlConnection();
       // SqlCommand comand = new SqlCommand();
       // SqlDataAdapter adaptor = new SqlDataAdapter();
       // DataSet dataset = new DataSet();
        //DataGridView dg = new DataGridView();
      //  SqlDataAdapter da = new SqlDataAdapter();
      
          //  connection.ConnectionString = (@"Data Source=ASUSERVER\WINCC;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=asutp");
            
        /* Добавляем на форму кнопку "Save" (Сохранить) */
 
       // Button btnSave = new Button();
        //btnSave.Text = "Save";
        //btnSave.Click += new System.EventHandler(BtnSave_Click);
        //btnSave.Dock = DockStyle.Bottom;
        //this.Controls.Add(btnSave);
 
        /* Добавляем элемент DataGridView на форму */
    
       //dg = new DataGridView();
       //dg.Width = 500;//this.Width;
        //dg.Height = 500;
        //dg.Dock = DataGridView.Equals;
        //this.Controls.Add(dg);
 
        /* Создаем экземпляры объектов для "умной" работы с данными и используем их
        вместе для привязки элемента DataGridView к требуемому источнику данных */
 
        // Объект DataAdapter выступает в роли посредника при взаимодействии базы данных и хранящегося в памяти объекта DataTable
        //da = new SqlDataAdapter("SELECT * FROM messages", connection);
 
        // Объект CommandBuilder автоматически выполняет команды UPDATE и INSERT
        //SqlCommandBuilder cb = new SqlCommandBuilder(da);
 
        // Объект DataTable отслеживает и сохраняет в памяти изменения
        //DataTable dt = new DataTable();
 
        // Теперь заполняем объект DataTable данными
        //da.Fill(dt);
 
        // Привязываем элемент управления DataGridView к объекту DataTable
        //dg.DataSource = dt;
        //}   
            //private void BtnSave_Click(object sender, System.EventArgs e)
          //  {
        // При нажатии кнопки "Save" в базе данных сохраняются любые изменения,
        // внесенные в источник данных, связанный с DataGridView, которым
        // в данном случае является объект DataTable
            //    DataGridView dg = new DataGridView();
              //  SqlDataAdapter da = new SqlDataAdapter();
        //da.Update((DataTable)dg.DataSource);
        
          //      MessageBox.Show
        
            //        ("Data has been saved", "For your information", MessageBoxButtons.OK);
            //}
 
            private void Form2_Load(object sender, EventArgs e)
            {
 
            }
 
            private void btnSave_Click_1(object sender, EventArgs e)
            {
 
            }
 
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2014, 11:23
Ответы с готовыми решениями:

Нужно найти оптимальное решение!
Помогите решить задачу, пожалуйста! Очень надо! :-[ Вложил условия...

SQL запрос, нужно решение
Здравствуйте, помогите с фильтрацией данных в SQL запросе. Есть две таблицы, в каждой списки с одинаковыми названиями и ID, я их сравниваю...

Jquery, php, sql. Нужно решение
Привет всем. Пока только изучаю, но столкнулся с такой задачей. Есть БД. Следующим запросом в нее вывожу в переменную значение: ...

2
7 / 8 / 0
Регистрация: 15.11.2012
Сообщений: 203
23.12.2014, 10:13 2
Лучше все хранить в БД. А лучше даже хранить хэши.
0
 Аватар для pincet
1653 / 1152 / 173
Регистрация: 23.07.2010
Сообщений: 6,869
23.12.2014, 10:50 3
AD или workgroup?

Добавлено через 2 минуты
и это
Цитата Сообщение от Leo28 Посмотреть сообщение
using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) count +=
1; } connection.Close(); } if (count == 0) { MessageBox.Show("Не верный Логин или Пароль!"); return; }
обычно делают так
C#
1
2
3
4
if(reader.HasRows)
{
// записи есть
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2014, 10:50
Помогаю со студенческими работами здесь

PHP, SQL, Jquery. Нужно решение
Привет всем. Пока только изучаю, но столкнулся с такой задачей. Есть БД. Следующим запросом в нее вывожу в переменную значение: ...

Оптимальное решение
Есть задачка: Требуется определить, сколько цифр N встречается в диапазоне между L числом ряда Фибоначчи и R числом ( например между...

Оптимальное решение?
Есть таблица: ************************************************************ * а здесь много-много * ОКНО2 а здесь *...

Оптимальное решение
Приветствую! И так для начала опишу основной принцип: 1. Будет реализовано ПО, которое предназначено для оператора(ов)/администраторов,...

Найти оптимальное решение
Поставлена задача, программно переводить предложение (каждый символ) в таблицу cp1251. То есть, дано предложение: Привет Задача:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
Работа с метаданными EXIF и JPEG в JavaScript
run.dev 19.03.2025
Работа с изображениями в веб-разработке нередко выходит за рамки простого отображения картинки. Современные задачи требуют глубокого понимания структуры файлов и умения манипулировать их внутренними. . .
Чеклист для Kubernetes в продакшене: Лучшие практики для SRE
Mr. Docker 19.03.2025
Когда сталкиваешься с запуском Kubernetes в продакшене, невольно задаешься вопросом: почему то, что так гладко работало в тестовой среде, вдруг начинает вызывать головную боль на боевых системах?. . .
Разработка продвинутого ИИ в Unity с использованием Behavior Graph
GameUnited 19.03.2025
В разработке игр искусственный интеллект персонажей часто становится тем элементом, который превращает хорошую игру в выдающуюся. До недавнего времени разработчикам под Unity приходилось либо писать. . .
Словари в Python: методы работы, оптимизация, сериализация
py-thonny 19.03.2025
Каждый хотя бы раз сталкивался с необходимостью хранить связанные данные, где важна не только сама информация, но и их взаимосвязь. В дебрях Python словари — это тот универсальный инструмент, который. . .
Реализация паттерна CQRS с Event Sourcing в PHP
Jason-Webb 19.03.2025
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи данных в приложении. Если вы столкнулись с ситуацией, когда ваше PHP-приложение. . .
std::span в C++: Подпредставлени­я и срезы
NullReferenced 18.03.2025
Если вы когда-нибудь работали с большими объемами данных в C++, то наверняка сталкивались с необходимостью манипулировать отдельными частями массивов или контейнеров. Традиционные подходы часто. . .
std::span в C++: Доступ к элементам и итерирование
NullReferenced 18.03.2025
В C++ каждый разработчик сталкивается с проблемой эффективного управления последовательностями данных. Представьте: вы работаете с массивом, передаете его в функцию, а затем в другую, и каждый раз. . .
Утечки памяти в C#
UnmanagedCoder 18.03.2025
Когда мы говорим о разработке приложений на C#, то часто успокаиваем себя мыслью, что сборщик мусора решит все наши проблемы с памятью. "Память управляется автоматически" — эта мантра прочно засела в. . .
std::span в C++: Введение в невладеющее представление
NullReferenced 18.03.2025
С появлением стандарта C++20 у нас появился новый инструмент — std::span, который представляет собой невладеющее представление для работы с последовательностями данных. std::span — это легковесный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru