-1
Kullanıcının bir kullanıcı adı ve parola oluşturduğu ve bilgi bir veritabanına kaydedildiği C# içinde bir TimeClock yapıyorum.Güçlü Yazılan DataSet'lerle İlgili Sorun
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.Data.Sql;
using System.Data.SqlClient;
namespace TimeClockProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void AddUser(string username, string password, string confirmPass, string email)
{
//Loop through Logins Table
foreach (DataRow row in loginsDataSet.Logins)
{
//And look for matching usernames
if (row.ItemArray[0].Equals(username))
{
//If one is found, show message:
MessageBox.Show("Username already exists");
return;
}
}
//Confirm pass must equal password.
if (password != confirmPass)
{
MessageBox.Show("Passwords do not match");
}
//Password must be at least 8 characters long
else if (password.Length < 8)
{
MessageBox.Show("Password must be at least 8 characters long");
}
//If there is no username
else if (username == null)
{
MessageBox.Show("Must have Username");
}
//If all is well, create the new user!
else
{
loginsDataSet.LoginsRow newUserRow = loginsDataSet.Logins.NewLoginsRow();
string EncryptedPass = HashPass(password);
newUserRow.Username = username;
newUserRow.Password = EncryptedPass;
loginsDataSet.Logins.Rows.Add(newUserRow);
registerUserName.Text = String.Empty;
registerPassword.Text = String.Empty;
registerConfirmPassword.Text = String.Empty;
MessageBox.Show("Thank you for Registering!");
}
}
public string HashPass(string password)
{
SHA256 sha = new SHA256CryptoServiceProvider();
//compute hash from the bytes of text
sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(password));
//get hash result after compute it
byte[] result = sha.Hash;
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
//change it into 2 hexadecimal digits
//for each byte
strBuilder.Append(result[i].ToString("x2"));
}
return strBuilder.ToString();
}
private void registerButton_Click(object sender, EventArgs e)
{
AddUser(registerUserName.Text, registerPassword.Text, registerConfirmPassword.Text, registerEmail.Text);
}
}
}
: Eh, DataSet başvuru her hatayı alıyorum: " 'TimeClockProject.loginsDataSet.Logins.Get' bir nesne referansı nonstatic alan, yöntem veya özellik için gereklidir" İşte
kodudur
hata, size sorunun ne olduğunu anlatıyor .. gerçekte DataSet bildiriyorsunuz .. ilgili tüm kodu gösterebilir misiniz ..? – MethodMan
Visual Studio'da SQL DataBase'i önceden oluşturmuş olsaydım DataSet bildirmem gerektiğini düşünmemiştim. – Probable
kuyu Statnce ve statik arasındaki farkı anlamanız gerektiği gibi, Visual Studio'nun Sql Databaser ve nesneler hakkında nasıl bir şey bildiğini de biliyorsunuz .. İkisini anlamanız gerekir .. – MethodMan